#include <iostream>
# include <cstdio>
using namespace std;
int main()
{
int n;
int a[9000];
int carry;//保存进位
int digit = 1;//保存位数
int temp;//阶乘任意以为与临时数组中某一位的乘积
a[0] = 1;
scanf("%d",&n);
for(int i=2;i<=n;i++){//n!
int j;
for(j=1,carry=0;j<=digit;j++){
temp = a[j-1]*i + carry;
a[j-1] = temp%10;
carry = temp/10;
}
while(carry){//目的是把进位保存在数组中
a[++digit-1] = carry%10;
carry = carry/10;
}
}
for(int i=digit-1;i>=0;i--){
printf("%d",a[i]);
}
printf("\n");
return 0;
}