from collections import defaultdict with open("input/day12.txt") as f: input = f.read() neighbors = defaultdict(set) for line in input.splitlines(): a, bs = line.split(" <-> ") for b in bs.split(", "): neighbors[a].add(b) neighbors[b].add(a) def connected(start, neighbors) -> int: queue = [start] seen = set() while queue: node = queue.pop(0) if node in seen: continue seen.add(node) queue.extend(neighbors[node]) return len(seen) print(connected("0", neighbors))