#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bool rcmp(int a, int b) { return a>b; } typedef long long LL; int expit(LL b, LL e, int m) { LL r=1; while(e) { if (e&1) { r*=b; r%=m; } b*=b; b%=m; e>>=1; } return r; } int main() { int i, m, b,v , f, k; int ff[8]; LL n, vv; scanf("%lld %d %d", &n, &m, &b); v=expit(m, n/2, b); if (n&1) { // decompose m to six for (k=0; k<6; k++) { ff[k]=0; if (m) { f=sqrt(m); if (f*f>m) f--; ff[k]=f; m-=f*f; } } for (k=0; k<6; k++) { vv=v; vv*=ff[k]; vv%=b; if (vv==0) vv=b; if (k==5) printf("%d\n", vv); else printf("%d ", vv); } } else { if (v==0) v=b; printf("%d %d %d %d %d %d\n", v, b, b, b, b, b); } return 0; }