#include<stdio.h>//加法字符串会进位了 但乘法第一次听说 明白了
#define width 3000
int main()
{
int i,j;
int k,r,t;
int N;
int d[width];
while(scanf("%d",&N)!=EOF)
{
t=0;
for(i=0;i<width;i++) /**给数组初始化为零*/
d[i]=0;
d[0]=1; /**个位初始化为1*/
for(i=1;i<=N;i++) /**从1到N进行阶乘*/
{
k=0;
for(j=0;j<=t;j++)/**从个位开始往高位运算*/
{
r=(d[j]*i+k)/10; /**第j位乘以i加上后一位运算得到的k,在除以10得到k*/
d[j]=(d[j]*i+k)%10;/**第j位乘以i加上后一位运算得到的k,再取余得到运算后第j位的只*/
k=r;
}
while(k!=0) /**k!=0说明要向高位进位*/
{
d[++t]=k%10;
k=k/10;
}
}
for(i=t;i>=0;i--) /**从个位开始输出各位数字*/
printf("%d",d[i]);
printf("\n");
}
return 0;
}