#include<fstream>
using namespace std;
ifstream f("patrate2.in");
ofstream g("patrate2.out");
int a[5],c,k,p,n,i,j,r[161][5000],rez[5000],vp[21],v63[]={19,8,0,8,5,7,7,4,5,8,6,3,0,2,7,3,3,2,2,9};
long long put;
void inmultire(int a[],int b[],int c[])
{
int i,t=0,j,n=a[0]-1+b[0];
for(i=1;i<=a[0];++i)
for(j=1;j<=b[0];++j)
c[i+j-1]+=a[i]*b[j];
for(i=1;i<=n||t;++i)
{c[i]+=t;
t=c[i]/10;
c[i]%=10;
}
c[0]=i-1;
}
int main()
{
f>>n;
if(n==1)
g<<"2";
else
if(n==2)
g<<"32";
else
{
k=(n*n)/63;
p=(n*n)%63;
put=1<<p;
while(put!=0)
{
c=put%10; put/=10;
++vp[0];
vp[vp[0]]=c;
}
r[0][0]=1; r[0][1]=1;
for(i=1;i<=k;++i)
inmultire(r[i-1],v63,r[i]);
inmultire(r[k],vp,r[160]);
for(i=1;i<=r[2][0];++i)
r[2][i]=0;
r[2][0]=1; r[2][1]=2;
for(i=3;i<=n;++i)
{
if(i==100)
{
a[0]=3; a[1]=0; a[2]=0; a[3]=1;
}
else
if(i>9)
{
a[0]=2; a[1]=i%10; a[2]=i/10; a[3]=0;
}
else
{
a[0]=1; a[1]=i; a[2]=0; a[3]=0;
}
for(j=1;j<=r[i][0];++j)
r[i][j]=0;
inmultire(a,r[i-1],r[i]);
}
inmultire(r[160],r[n],rez);
for(i=rez[0];i>=1;--i)
g<<rez[i];
}
return 0;
}