#include<bits/stdc++.h>
using namespace std;
int n , m1 , m2 , a , k[1000005] , cur , c[1000005] , minn = 1e9 , p[1000005];
int main(){
cin >> n >> m1 >> m2;
for(int i = 2;i * i <= m1;i++){
if(m1 % i == 0){
int cnt = 0;
while(m1 % i == 0){
cnt++;
m1 /= i;
}
k[++cur] = cnt;
p[cur] = i;
}
}
if(m1 > 1)k[++cur] = 1 , p[cur] = m1;
while(n--){
cin >> a;
memset(c , 0 , sizeof(c));
bool f = 1;
int maxn = 0;
for(int i = 1;i <= cur;i++){
int cnt = 0;
while(a % p[i] == 0){
cnt++;
a /= p[i];
}
c[i] = cnt;
if(!c[i] && k[i]){
f = 0;
break;
}
maxn = max(maxn , int(ceil((m2 * k[i] * 1.0) / c[i])));
}
if(f)minn = min(minn , maxn);
}
if(minn == 1e9)cout << -1;
else cout << minn;
return 0;
}