text = open(0).read() cards = [] for line in text.splitlines(): ns, ms = [[int(n) for n in line.strip().split()] for line in line.split(':')[1].split('|')] cards.append(len(set(ns) & set(ms))) print(sum(2 ** (n - 1) for n in cards if n)) counter = [1 for _ in cards] for i, n in enumerate(cards): for j in range(i + 1, i + 1 + n): counter[j] += counter[i] print(sum(counter))