#include #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; using lint=long long; const int INF=1<<29; int main(){ int n; lint m,p; scanf("%d%lld%lld",&n,&m,&p); vector a(n); rep(i,n) scanf("%lld",&a[i]); if(m==1){ puts("0"); return 0; } if(*max_element(a.begin(),a.end())>=m){ puts("1"); return 0; } lint mx=1; rep(i,n){ lint t=a[i]; while(t%p==0) t/=p; mx=max(mx,t); } if(mx==1){ puts("-1"); return 0; } return -1; int ans=INF; rep(i,n) if(a[i]>=2) { lint tar=(m+a[i]-1)/a[i]; int cnt=0; for(lint x=1;x