import re import sys def run(text): acc = 0 pos = 0 seen = set() instructions = text.splitlines() while pos not in seen: seen.add(pos) inst, n = instructions[pos].split() if inst == 'acc': acc += int(n) pos += 1 elif inst == 'jmp': pos += int(n) elif inst == 'nop': pos += 1 if pos == len(instructions): raise RuntimeError(acc) return acc text = sys.stdin.read() print(run(text)) for match in re.finditer(r'(jmp|nop)', text): seen, (a, b) = match.group(0), match.span() pair, = {'jmp', 'nop'} - {seen} var = text[:a] + pair + text[b:] try: run(var) except RuntimeError as error: print(error)