#include <iostream>
#include <algorithm>
using namespace std;
int num[900001]; //储存每一位所得到的数
int main() {
int temp, digit, n, i, j = 0; //temp每次的得数 digit每次得数的位数
scanf("%d", &n);
num[0] = 1; //从1开始乘
digit = 1; //位数从第一位开始
for (i = 2; i <= n; i++){
int t = 0;
for (j = 0; j<digit; j++){
temp = num[j] * i + t; //将一个数的每一位数都分别乘以i,
num[j] = temp % 10; //将一个数的每一位数利用数组进行储存
t = temp / 10;
}
//判断for循环退出后,num的值是否为0。非0,则继续存储
while (t) {
num[digit] = t % 10;//继续储存
t /= 10;
digit++;
}
}
for (i = digit - 1; i >= 0; i--) //倒序输出每一位
printf("%d", num[i]);
printf("\n");
return 0;
}