// 大整数乘法。。。
#include<stdio.h>
#include<string.h>struct bigInteger{
int digit[1000];
int size;
void init(){
for(int i=0;i<1000;i++) digit[i]=0;
size=0;
}
void set(int x){ // 用一个小整数设置高精度整数
init();
do{ // 对小整数4位为一个单位分解依次存入digit当中
digit[size++]=x%10000;
x/=10000;
}while(x!=0);
}
void output(){
for(int i=size-1;i>=0;i--){
if(i!=size-1) printf("%04d",digit[i]);
else printf("%d",digit[i]);
}
printf("\n");
}
bigInteger operator * (int x) const{
bigInteger ret;
ret.init();
int carry=0;
for(int i=0;i<size;i++){
int tmp=x*digit[i]+carry;
carry=tmp/10000; // 计算进位
tmp%=10000; // 去除进位部分
ret.digit[ret.size++]=tmp;
}
if(carry!=0) ret.digit[ret.size++]=carry;
return ret;
}
}a;
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
a.init();
a.set(1); // a初始化为1
for(int i=1;i<=n;i++) a=a*i;
a.output();
}
return 0;
}