#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define repr(i, a, b) for (int i = (int)(a); i < (int)(b); i++) #define rep(i, n) repr(i, 0, n) #define INF 2e9 //#define MOD 1000000007 #define MOD 998244353 #define LINF (long long)4e18 #define jck 3.141592 const double EPS = 1e-10; using ll = long long; using Pi = pair; using Pl = pair; int main(){ int n,m,p; cin >> n >> m >> p; vector a(n); rep(i,n) cin >> a[i]; ll M = 0,M_p = 0; rep(i,n){ if(a[i]%p == 0) M_p = max(M_p,a[i]); else M = max(M,a[i]); } ll k = M_p; while(k%p == 0) k /= p; if((M == 0||M == 1) and k == 1){ cout << -1 < m || x*M_p > m){ ans++; break; } int cnt = 0; ll k = M_p; while(k%p == 0){ k /= p; cnt++; } if(M ==1){ ans += cnt+1; x *= k; } else { int cnt2 = 0; ll k2 = M; while(k2 < m){ k2 *= M; cnt2++; } if(cnt2 < cnt){ ans++; x *= M; } else{ if(pow(M,cnt2) < k){ ans += cnt+1; x *= k; } else{ ans++; x *= M; } } } } cout << ans << endl; }