def ext_gcd(a :int, b :int): # Extended Euclidean algorithm x0, y0 = 1, 0 x1, y1 = 0, 1 while b != 0: q,r = divmod(a, b) x2 = x0 - q * x1 y2 = y0 - q * y1 a = b b = r x0, y0 = x1, y1 x1, y1 = x2, y2 return (a, x0, y0) def crt(r1 :int, m1 :int, r2 :int, m2 :int): # Chinese Remainder Theorem # x = r1 (mod m1), x = r2 (mod m2) # <-> x = r3 (mod m3) g,p,q = ext_gcd(m1, m2) if (r2 - r1) % g != 0: return 0, -1 m3 = m1 * m2 // g # lcm of m1 and m2 r3 = r1 + m1 * ((r2 - r1) // g * p) r3 %= m3 return (r3, m3) n, m = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) ans = 100000000000 for i in range(n): for j in range(m): if a[i] == b[j]: t = crt(i, n, j, m) if t[1] != -1 and ans > t[0]: ans = t[0] if ans == 100000000000: print(-1) else: print(ans + 1)