N, M, P = map(int, input().split()) A = list(map(int, input().split())) if M == 1: print(0) exit() ok = [] ng = [] for a in A: if a == 1: continue if a % P == 0: ng.append(a) else: ok.append(a) if ok: v = max(ok) ans = 0 x = 1 while x < M: x *= v ans += 1 print(ans) exit() if ng: v = max(ng) if v >= M: print(1) exit() tmp = v while tmp % P == 0: tmp //= P if tmp == 1: print(-1) exit() ans = 0 x = 1 while x < M: if x % P == 0: x //= P else: x *= v ans += 1 print(ans) exit() print(-1)