n,m,p = map(int,input().split()) a = list(map(int,input().split())) ans = float("INF") ma = max(a) if ma > m: print(1) exit() MAX = [0]*40 for i in a: now = i count = 1 while now%p == 0: now //= p count += 1 if now == 1: continue MAX[count] = max(MAX[count],now) dp = [0]*2000 dp[0] = 1 for i in range(1600): if ma * dp[i] > m: print(i+1) exit() for j in range(40): dp[i+j] = max(dp[i+j],dp[i]*MAX[j]) print(-1)