#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
//#include<lazy.h>
using namespace std;
int num1[10000],num2[10000],m1,m2,n;
void mul(int a){
for(int i=1;i<=m1;i++){
num1[i]*=a;
}
for(int i=1;i<=m1-1;i++){
num1[i+1]+=num1[i]/10;
num1[i]%=10;
}
while(num1[m1]/10){
num1[++m1]=num1[m1-1]/10;
num1[m1-1]%=10;
}
}
void sum(){
for(int i=1;i<=max(m1,m2);i++){
num2[i]+=num1[i];
num2[i+1]+=num2[i]/10;
num2[i]=num2[i]%10;
}
m2=max(m1,m2);
while(num2[m2]/10){
num2[++m2]=num2[m2-1]/10;
num2[m2-1]%=10;
}
}
int main(){
memset(num1,0,sizeof(num1));
memset(num2,0,sizeof(num2));
m1=m2=1;num1[1]=1;
scanf("%d",&n);
for(int i=1;i<=n;i++){
mul(i);sum();
}
for(int i=m2;i>=1;i--){
printf("%d",num2[i]);
}
return 0;
}