import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### mod = 10 ** 9 + 7 def f(A): if A == [[0, 0], [0, 0]]: r = 0 elif (A[0][0] * A[1][1] - A[0][1] * A[1][0]) % mod == 0: r = 1 else: r = 2 return (A[0][0] + A[1][1]) % mod, (A[0][0] * A[1][1] - A[0][1] * A[1][0]) % mod, r def mat_mul(A, B): return [[(A[0][0] * B[0][0] + A[0][1] * B[1][0]) % mod, (A[0][0] * B[0][1] + A[0][1] * B[1][1]) % mod], [(A[1][0] * B[0][0] + A[1][1] * B[1][0]) % mod, (A[1][0] * B[0][1] + A[1][1] * B[1][1]) % mod]] def inv(A): INV = pow(A[0][0] * A[1][1] - A[0][1] * A[1][0], mod - 2, mod) return [[A[1][1] * INV % mod, -A[0][1] * INV % mod], [-A[1][0] * INV % mod, A[0][0] * INV % mod]] A = [na(), na()] B = [na(), na()] ans = 1 from random import randint for _ in range(1000): # print(f(A), f(B)) p = [[randint(0, mod -1) for _ in range(2)] for _ in range(2)] if f(p) [1] == 0: continue A = mat_mul(inv(p), mat_mul(A, p)) if f(A) != f(B): ans = 0 if ans: Yes() else: assert False