#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll _=1e6+5;
ll n,q,x,s=1,t,a[_],i,j,M;
ll qp(ll x,ll y){ll z=1;for(;y;y>>=1,x=x*x%M)if(y&1)z=z*x%M;return z;}
void cal(ll x,bool f){
ll y=0;
while(x%M==0)x/=M,y++;
if(f)t+=y,s=s*x%M;
else t-=y,s=s*qp(x,M-2)%M;
}
void p(ll x){
while(1^x&1)x>>=1;
for(i=3;i*i<=x;i+=2)if(x%i==0){
cal(a[i]+1,0);
while(x%i==0)x/=i,a[i]++;
cal(a[i]+1,1);
}
if(x>1)cal(a[x]+1,0),a[x]++,cal(a[x]+1,1);
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>x>>q>>M;
while(1^x&1)x>>=1;
for(i=3;i*i<=x;i+=2)if(x%i==0){
cal(a[i]+1,0);
while(x%i==0)x/=i,a[i]++;
cal(a[i]+1,1);
}
if(x>1){if(x<_)a[x]++;s=s*2%M;}
while(q--)cin>>x,p(x),cout<<(t?0ll:s)<<'\n';
}
1650C - Weight of the System of Nested Segments | 1097A - Gennady and a Card Game |
248A - Cupboards | 1641A - Great Sequence |
1537A - Arithmetic Array | 1370A - Maximum GCD |
149A - Business trip | 34A - Reconnaissance 2 |
59A - Word | 462B - Appleman and Card Game |
1560C - Infinity Table | 1605C - Dominant Character |
1399A - Remove Smallest | 208A - Dubstep |
1581A - CQXYM Count Permutations | 337A - Puzzles |
495A - Digital Counter | 796A - Buying A House |
67A - Partial Teacher | 116A - Tram |
1472B - Fair Division | 1281C - Cut and Paste |
141A - Amusing Joke | 112A - Petya and Strings |
677A - Vanya and Fence | 1621A - Stable Arrangement of Rooks |
472A - Design Tutorial Learn from Math | 1368A - C+= |
450A - Jzzhu and Children | 546A - Soldier and Bananas |