n, m, p = map(int, input().split()) a = list(map(int, input().split())) d = list() flag = True for c in a: tmp = 0 while c % p == 0: c //= p tmp += 1 if c > 1: flag = False d.append(tmp) if flag: print(-1) exit() dp = [1] * (100000) ans = 0 x = 1 y = max(a) # print(d) for i in range(100000): now = dp[i] if now > m: print(i) exit() for j in range(n): c = a[j] if now * c > m: print(i + 1) exit() dp[i+d[j]+1] = max(dp[i+d[j]+1], now*c//(p**d[j])) # print(i,d[j],j,now)