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);