// time:20/01/19 23:44
//digit 控制位数
//tmp 作为中间变量,数组的每个元素 ×下一个 i 值的时候,保存在tmp里面
//num 进位的时候,需要用num保存,然后给数组的下一位
#include <bits/stdc++.h>
#define M 10010
using namespace std;
int arr[M];
int main(){
int n,tmp = 1, digit = 1;
cin>>n;
arr[0] = 1;
for(int i = 2; i <= n; i++)
{
int num = 0;
for(int j = 0; j < digit; j++){
tmp = arr[j] * i + num;
arr[j] = tmp%10;
num = tmp/10;
}
while(num)
{
arr[digit] = num%10;
num /= 10;
digit++;
}
}
for(int i = digit - 1; i >= 0; i--){
cout<<arr[i];
}
cout<<endl;
return 0;
}