#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;
}