#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#define ll long long
using namespace std;
int N,m1,m2;
int ans,now;
int s;
int v[30010],p[30010];
int main()
{
scanf("%d",&N);
scanf("%d %d",&m1,&m2);
ans=9999999;
for(int i=2;i<=sqrt(m1);i++)
{
if(m1%i==0)
{
while(m1%i==0)
{
m1/=i;
p[i]++;
}
p[i]*=m2;
}
if(m1>1) p[m1]+=m2;
}
for(int i=1;i<=N;i++)
{
memset(v,0,sizeof(v));
int tot=-99999999;
scanf("%d",&s);
for(int j=2;j<=sqrt(s);j++)
{
if(s%j==0)
{
while(s%j==0)
{
s/=j;
v[j]++;
}
if(p[j]!=0)
{
now=1;
while(v[j]<p[j])
{
v[j]*=2;
now++;
}
tot=max(tot,now);
}
}
if(s>1)
{
v[s]++;
if(p[s]!=0)
{
now=1;
while(v[s]<p[s])
{
v[s]*=2;
now++;
}
tot=max(tot,now);
}
}
}
ans=min(tot,ans);
}
//for(int i=1;i<=5;i++)
//printf("%d ",p[i]);
if(ans==-99999999) printf("-1");
else printf("%d",ans);
return 0;
}