#include<bits/stdc++.h>
using namespace std;
int up(double a)
{
if(a>int(a))
{
return int(a)+1;
}
return int(a);
}
int main()
{
long long n;
cin>>n;
long long m1,m2;
cin>>m1>>m2;
long long cells[n];
for(int a=0;a<n;a++)
{
cin>>cells[a];
}
if(m1==1||m2==0)
{
cout<<0;
return 0;
}
long long zys[30000]={};
int m3=m1,maxs;
for(int a=2;a<=m1;a++)
{
if(m3<a)
{
maxs=a;
break;
}
while(m3%a==0)
{
m3/=a;
zys[a]+=m2;
}
}
double max=-1;
for(int a=0;a<n;a++)
{
double smax=-1,t=1;
for(int b=0;b<maxs;b++)
{
if(zys[b]==0)
{
continue;
}
if(cells[a]%b==0)
{
int h=cells[a];
int t=0;
while(h%b==0)
{
h/=b;
t++;
}
if(zys[b]/1.0/t>smax)
{
smax=zys[b]/1.0/t;
}
continue;
}
t=0;
}
if(t)
{
if(max<smax)
{
max=smax;
}
}
else
{
continue;
}
}
if(max==-1)
{
cout<<max;
return 0;
}
cout<<up(log(up(max+1)));
}
1,3,6过了,其他全部wa 测试的时候第2个直接输入之后没反应(可以继续输入数据,不是程序卡)