#include using namespace std; using LL=long long; using ULL=unsigned long long; #define rep(i,n) for(int i=0; i<(n); i++) ULL N,M,P; ULL maxA; ULL D[70]; ULL dp[5000]; int main(){ scanf("%llu%llu%llu",&N,&M,&P); rep(i,70) D[i]=1; maxA=1; rep(i,N){ ULL a; scanf("%llu",&a); int d=1; ULL b=a; while(b%P==0){ b/=P; d++; } D[d]=max(D[d],b); maxA=max(maxA,a); } rep(i,5000) dp[i]=1; M=M/maxA; int ans=-1; rep(i,5000){ if(dp[i]>M){ ans=i+1; break; } rep(j,70){ if(D[j]==1) continue; if(j==0) continue; if(i+j>=5000) continue; dp[i+j]=max(dp[i+j],dp[i]*D[j]); } } printf("%d\n",ans); return 0; }