···11+import re
22+import fileinput
33+44+55+MUL_RE = r"mul\((\d+),(\d+)\)"
66+DONT_DO_RE = r"don\'t\(\).*?(do\(\)|$)" # match a `do()` or end of string
77+88+99+def count_muls(program):
1010+ return sum(int(x) * int(y) for x, y in re.findall(MUL_RE, program))
1111+1212+1313+program = ''.join(line.strip() for line in fileinput.input())
1414+print("Part 1:", count_muls(program))
1515+print("Part 2:", count_muls(re.sub(DONT_DO_RE, '', program)))
1616+