///n! * 2^n*n
#include <fstream>
using namespace std;
ifstream cin("patrate2.in");
ofstream cout("patrate2.out");
int v[10001],v2[10001];
void inmultire(int v[],int val)
{
int l=v[0],c=0,i;
for(i=1;i<=l;i++)
{
c=v[i]*val+c;
v[i]=c%10;
c/=10;
}
while(c)
{
l++;
v[l]=c%10;
c/=10;
}
v[0]=l;
}
/*void adun(int v1[],int v2[])
{
int l1=v1[0],l2=v2[0],i,c;
l1=max(l1,l2);
for(i=1;i<=l1;i++)
{
c=v1[i]+v2[i]+c;
v1[i]=c%10;
c/=10;
}
while(c)
{
l1++;
v1[l1]=c%10;
c/=10;
}
v1[0]=l1;
}*/
int main()
{
int n,i;
cin>>n;
v[0]=v[1]=1;
for(i=1;i<=n;i++)
inmultire(v,i);
//v2[0]=v2[1]=1;
for(i=1;i<=n*n;i++)
inmultire(v,2);
// adun(v,v2);
for(i=v[0];i>0;i--)
cout<<v[i];
return 0;
}