import re input = open("input", 'r').read().strip() A = re.findall(r"Button A: X\+(\d*), Y\+(\d*)", input) B = re.findall(r"Button B: X\+(\d*), Y\+(\d*)", input) T = re.findall(r"Prize: X=(\d*), Y=(\d*)", input) AC = 3 BC = 1 def run(p2=0, LIM=100): p = [] for a,b,t in zip(A,B,T): xa, ya = int(a[0]), int(a[1]) xb, yb = int(b[0]), int(b[1]) xt, yt = int(t[0])+p2, int(t[1])+p2 alpha = (xt*yb-yt*xb) / (xa*yb-ya*xb) beta = (yt*xa-xt*ya) / (xa*yb-ya*xb) if alpha == int(alpha) and beta == int(beta): if LIM and (alpha > LIM or beta > LIM): continue p.append(int(alpha*AC + beta*BC)) return p print(sum(run())) M = 10000000000000 print(sum(run(M, None)))