//计算大数阶乘的方法,利用这种方法可以计算任何阶乘
#include <stdio.h>

void Factorial(int n);//声明函数Factorial

int main() { //主函数,输入n的值
    int n;
    while (scanf("%d", &n) != EOF) {
        Factorial(n);//把n的值传给函数Factorial
        
    }
return 0;
}

void Factorial(int n) { //定义函数Factorial
    int i, j; //定义循环变量
    int temp;//定义中间结果变量
    int carry;//定义进位数变量
    int len = 1; //定义结果长度变量
    int a[10000] = {0}; //定义结果数组
    a[0] = 1; //初始结果为1
    for (i = 2; i <= n; i++) { //循环n次,求n的阶乘
        carry = 0; //使每次进位数为零
        for (j = 0; j < len;
                j++) { //保存每一位数字并判断结果是否需要增长
            temp = a[j] * i + carry; //计算中间结果
            a[j] = temp % 10; //保存每一位数字,从后往前
            carry = temp / 10; //计算进位数
            if (j >= len - 1 && carry > 0) { //判断结果是否需要增长
                len++;
            }
        }
    }

    for (i = len - 1; i >= 0; i--) { //输出最终结果
        printf("%d", a[i]);
        
    }printf("\n");
}