N, M, P = map(int, input().split()) A = list(map(int, input().split())) if M == 1: print(0) exit() last = max(A) # これ、最後に必ずかける target = (M + last - 1) // last if target == 1: print(1) exit() ans = 10 ** 18 for a in A: cnt = 1 x = a while x % P == 0: cnt += 1 x //= P if x == 1: continue tmp = cnt * ((target + x - 1) // x) + 1 ans = min(ans, tmp) if ans >= 10 ** 18: ans = -1 print(ans)