n, m, p = map(int, input().split()) a = list(map(int, input().split())) d = list() cnt = list() flag = True for c in a: tmp = 0 while c % p == 0: c //= p tmp += 1 if c > 1: flag = False d.append(c) cnt.append(tmp) if flag: print(-1) exit() dp = [1] * (100000) 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 + cnt[j] + 1] = max(dp[i + cnt[j] + 1], now * d[j])