#include<bits/stdc++.h>
using namespace std;
int s[10005],m1,m2,n;
int p[30005];
int m[30005];
int main(){
cin>>n>>m1>>m2;
for(int i=1;i<=n;i++)
cin>>s[i];
for(int i=2;i*i<=m1;i++)
{
int cnt = 0;
while(m1%i==0)
{
m1/=i;
cnt++;
}
m[i] = cnt*m2;
}
if(m1!=1)m[m1] = m2;
int ans = 2e9;
for(int i=1;i<=n;i++)
{
int maxn = 0,flag = 1;
memset(p,0,sizeof(p));
for(int j=2;j*j<=s[i];j++)
{
int cnt = 0;
while(s[i]%j==0)
{
s[i]/=j;
cnt++;
}
p[j] = cnt;
}
if(s[i]!=1&&s[i]<=30000)
p[s[i]]++;
for(int j=2;j<=30000;j++)
{
if(p[j]==0&&m[j])
{
flag = 0;
break;
}
else
maxn = max(maxn,int(ceil(1.0*m[j]/p[j])));
}
if(flag == 1)
ans = min(ans,maxn);
}
if(ans!=2e9)
cout<<ans;
else
cout<<-1;
return 0;
}