#include<iostream.h>
#include<fstream.h>
#include<math.h>
fstream f("patrate2.in",ios::in), g("patrate2.out",ios::out);
void mult(int p,int x);
void copiere(int w[10000],int v[10000],int k,int x);
void slap(int a[10000],int b,int &n);
int z[10000],c[10000];
int main()
{
//long long i,n,k,l,o,t=1,p=1;
//f>>n;
/*if(n==1)
cout<<"2";
else
if(n==2)
{ cout<<"32";}
else
{ k=1;l=2;
for(i=3;i<=n;i++)
{ l=4*l;
k*=2;
l-=k;
}
cout<<l<<" "<<k<<" ";
k=pow(n,2);
k=pow(k,2);
k=l*k;
g<<k;
cout<<k;
}*/
/*int p=1,t,n,i;
f>>n;
for(i=1;i<=n;i++)
p*=i;
t=pow(2,n*n);
t*=p;
cout<<t<<endl;*/
int i,n,k;
long long p=1;
z[1]=1;n=1;
f>>k;
for(i=1;i<=k;i++)
{ slap(z,i,n);}
for(i=1;i<=k*k;i++)
slap(z,2,n);
for(i=1;i<=n;i++)
{ g<<z[i];
cout<<z[i];
}
return 0;
}
void mult(int p,int x)
{
c[x]=p%10;
p/=10;c[x-1]+=p;
if(c[x-1]>9)
mult(c[x-1],x-1);
}
void copiere(int w[10000],int v[10000],int k,int x)
{
int i;
if(x==1)
for(i=x;i<=k;i++)
{ w[i]=v[i];v[i]=0;}
else
for(i=x+1;i<=k;i++)
{ w[i]=v[i-1];v[i-1]=0;}
}
void slap(int a[10000],int b,int &n)
{
int j,m=0,l,k,aux;
aux=b;
while(aux)
{ m++;
aux/=10;
}
k=m+n;
k--;
while(b)
{ l=k;
for(j=n;j>=1;j--)
{ /*c[l]+=(b%10*a[j]);
if(c[l]>9)
mult(c[l],l);
l--;*/
c[l]+=(b%10*a[j]);
if(c[l]>9)
{ aux=c[l];
c[l]=c[l]%10;
aux/=10;
c[l-1]+=aux;
}
l--;
}
k--;
b/=10;
}
k=m+n;
k--;
if(c[0]==0)
{ copiere(a,c,k,1);
k--;
}
else
{ k++;
copiere(a,c,k,0);k--;}
k++;
n=k;
}