def part2(program, target=19690720):
    runner = IntcodeRunner(program)
    for noun in range(100, (- 1), (- 1)):
        for verb in range(100):
            runner.set_mem(1, noun)
            runner.set_mem(2, verb)
            while True:
                try:
                    next(runner.run())
                except HaltExecution:
                    break
            if (runner.get_mem(0) == target):
                return ((100 * noun) + verb)
            runner.reset()
def part2(program, target=19690720):
    runner = IntcodeRunner(program)
    for noun in range(100, (- 1), (- 1)):
        for verb in range(100):
            runner.set_mem(1, noun)
            runner.set_mem(2, verb)
            while True:
                try:
                    next(runner.run())
                except HaltExecution:
                    break
            if (runner.get_mem(0) == target):
                return ((100 * noun) + verb)
            runner.reset()