#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m1,m2;
int a[10005];
bool f[30005];
int p[10005];
int tot;
void prime()
{
f[0]=f[1]=1;
for(int i=1;i<=30000;i++)
{
if(!f[i])p[++tot]=i;
for(int j=1;j<=tot&&i*p[j]<=30000;j++)
{
f[i*p[j]]=1;
if(i%p[j]==0)break;
}
}
}
int t[10005];
int m[10005];
signed main()
{
prime();
cin>>n>>m1>>m2;
if(m1==1)
{
cout<<0;
return 0;
}
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int o=m1;
int cnt=1;
while(o>1)
{
if(o%p[cnt]==0)
{
while(o%p[cnt]==0&&o>1)
{
o/=p[cnt];
m[cnt]++;
}
m[cnt]*=m2;
for(int i=1;i<=n;i++)
{
if(t[i]==-1)continue;
int x=a[i];
int ti=0;
while(x%p[cnt]==0)
{
x/=p[cnt];
++ti;
}
if(ti==0)t[i]=-1;
else t[i]=max(t[i],max(0*1ll,m[cnt]-ti));
}
}
++cnt;
}
bool flag=0;
int minn=INT_MAX;
for(int i=1;i<=n;i++)
{
if(t[i]!=-1)minn=min(minn,t[i]+1),flag=1;
}
if(flag)cout<<minn;
else cout<<-1;
}