from lib import * second = True if second is False: keypad = "123\n456\n789".splitlines() else: keypad = "00100\n02340\n56789\n0ABC0\n00D00".splitlines() data = open(0).read() DIRS = { "D": (1, 0), "L": (0, -1), "R": (0, 1), "U": (-1, 0), } BOUND = len(keypad) - 1 pos = (2, 0) r = "" for row in data.splitlines(): for c in row: dir = DIRS[c] npos = pos[0] + dir[0], pos[1] + dir[1] if npos[0] >= 0 and npos[0] <= BOUND and npos[1] >= 0 and npos[1] <= BOUND: if keypad[npos[0]][npos[1]] != "0": pos = npos r += keypad[pos[0]][pos[1]] print(r)