ull c[3][1024]; ll@n; ull@m,@b,z=1; m%=b; rep(j,3){ c[j][0]=1; c[j][1]=j==0?m:c[j-1][1023]*c[j-1][1]%b; rep(i,2,1024){ c[j][i]=c[j][i-1]*c[j][1]%b; } } ull p=EulerPhi(b); rep(n){ ull@a; a=(a-1)%p+1; z=z*(c[2][a>>20]*c[1][a>>10&1023]%b*c[0][a&1023]%b+1)%b; } wt(z);