def extgcd(a, b): # ax + by = gcd(a,b) # return gcd(a,b), x, y if a == 0: return b, 0, 1 else: g, x, y = extgcd(b % a, a) return g, y - (b // a) * x, x def chineseRem(b1, m1, b2, m2): # x ≡ b1 (mod m1) ∧ x ≡ b2 (mod m2) <=> x ≡ r (mod m) # となる(r. m)を返す # 解無しのとき(0, -1) d, p, q = extgcd(m1, m2) if (b2 - b1) % d != 0: return 0, -1 m = m1 * (m2 // d) # m = lcm(m1, m2) tmp = (b2-b1) // d * p % (m2 // d) r = (b1 + m1 * tmp) % m return r, m n,m = map(int,input().split()) ans = 10**10 A = list(map(int,input().split())) B = list(map(int,input().split())) for i,a in enumerate(A): for j,b in enumerate(B): if a != b: continue r,m = chineseRem(i,n,j,m) if m > 0: ans = min(ans,r+1) if ans == 10**10: ans = -1 print(ans)