import sys from itertools import cycle from math import lcm I, _, *P = [l for l in sys.stdin.read().splitlines()] # 0000000000111111111 # 0123456789012345678 # BCN = (HFN, KFC) P = {l[0:3]:(l[7:10],l[12:15]) for l in P} def countsteps(g): C = g N = 0 for i in cycle(I): if C[2] == 'Z': break C = P[C][i == 'R'] N += 1 return N print("part 1:", countsteps("AAA")) print("part 2:", lcm(*(countsteps(p) for p in P.keys() if p[2] == 'A')))