···11+import fileinput
22+33+MAPPINGS = {}
44+55+for line in fileinput.input():
66+ x, y = line.strip().split(' <-> ')
77+ MAPPINGS[x] = [pid for pid in y.split(', ')]
88+99+groups = {}
1010+seen_ids = set()
1111+group_0 = None
1212+1313+for pid in MAPPINGS.keys():
1414+ if pid in seen_ids:
1515+ continue
1616+1717+ connected = set()
1818+ queue = MAPPINGS[pid][:]
1919+2020+ while queue:
2121+ nid = queue.pop()
2222+ connected.add(nid)
2323+2424+ if nid == '0':
2525+ group_0 = pid
2626+2727+ for n in MAPPINGS[nid]:
2828+ if n not in seen_ids:
2929+ queue.append(n)
3030+ seen_ids.add(n)
3131+3232+ groups[pid] = connected
3333+3434+print "Programs in group containing PID 0:", len(groups[group_0])
3535+print "Total number of program groups:", len(groups)