#include <bits/stdc++.h>
using namespace std;
int n,a[100]={1},len1=1,s[100]={0},len2=1,b;
void jc(int j){ //计算j的阶乘
memset(a,0,sizeof(a));len1=1;
a[0]=1;
for(int i=1;i<=j;i++){
b=0;
for(int k=0;k<len1;k++){
a[k]=i*a[k]+b;
b=floor(a[k]/10);
a[k]%=10;
if(k==len1-1&&b>0) len1++;
}
}
}
void qh(){ //阶乘求和
b=0;
for(int i=0;i<len2;i++){
s[i]+=a[i]+b;
b=floor(s[i]/10);
s[i]%=10;
if(a[i+1]>0&&i==len2-1) len2++;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
jc(i);
qh();
}
for(int i=len2-1;i>=0;i--){
cout<<s[i];
}
return 0;
}