#!/usr/bin/env python3 from collections import defaultdict lines = [x.strip() for x in open("input.txt")] inp = map(int, lines[0].split(",")) boards = defaultdict(list) remaining = defaultdict(set) for i in range((len(lines)-1) // 6): sub = list(map(lambda x: list(map(int, x.split())), lines[i*6+2:i*6+7])) for j in range(5): boards[i].append(set(sub[j])) boards[i].append(set([row[j] for row in sub])) board_items = set() for row in sub: board_items.update(row) remaining[i] = board_items wins = set() for draw in inp: for key, board in boards.items(): if key in wins: continue remaining[key].discard(draw) for line in board: line.discard(draw) if len(line) == 0: wins.add(key) if len(wins) == 100: print(draw * sum(remaining[key])) exit(0) break