#include
int a[16350];
int jc(int n){
int i,j;
for(i=0;i<=n;i++) //这个做法效率太低了
a[i]*=n;
for(i=0;i<=n;i++) //这个循环对大数的阶乘就错了,50!是一个69位数
{
if(a[i]>=10){
if(a[i+1]<0)
a[i+1]=0;
a[i+1]+=a[i]/10;
a[i]%=10;
}
}
return i+1;
}
int main(){
int i,j,k,m=1,n;
memset(a,-1,16350*sizeof(int));
a[0]=1;
scanf("%d",&n);
for(i=2;i<=n;i++)
m=jc(i);
for(i=m;i>=0;i--){
if(a[i]>=0) printf("%d",a[i]);
}
printf("\n");
return 0;
}