import sys sys.setrecursionlimit(10**7) def I(): return int(sys.stdin.readline().rstrip()) def MI(): return map(int,sys.stdin.readline().rstrip().split()) def LI(): return list(map(int,sys.stdin.readline().rstrip().split())) def LI2(): return list(map(int,sys.stdin.readline().rstrip())) def S(): return sys.stdin.readline().rstrip() def LS(): return list(sys.stdin.readline().rstrip().split()) def LS2(): return list(sys.stdin.readline().rstrip()) N,M,P = MI() A = LI() max_A = max(A) ans = 1 X = (M+max_A)//max_A if X == 1: print(ans) exit() for i in range(N): a = A[i] if a % P == 0: while a % P == 0: a //= P A[i] = a max_A = max(A) if max_A == 1: print(-1) exit() x = 1 while x < X: x *= max_A ans += 1 print(ans)