from math import gcd def f(a: int, b: int, m: int) -> int | None: # a x = b (mod m) g = gcd(a, m) if b % g != 0: return None a2 = a // g b2 = b // g m2 = m // g # a' x = b' (mod m') x = b2 * pow(a2, -1, m2) % m2 return x def solve(r1, m1, r2, m2): # x = r1 (mod m1) # x = r1 + m1 t # r1 + m1 t = r2 (mod m2) # m1 t = r2 - r1 (mod m2) t = f(m1, r2 - r1, m2) if t is None: return None x = r1 + m1 * t return x B0, C0 = map(int, input().split()) B1, C1 = map(int, input().split()) ans = solve(C0 % B0, B0, C1 % B1, B1) if ans is None: print('NaN') else: print(ans)