using namespace std; string jiecheng(int n){
char a[300];
a[0]='1';
int len=1;
for(int i=2;i<=n;i++){
int jin=0;
for(int j=0;j<len;j++){
int t= i*(a[j]-'0')+jin;
jin=t/10;
a[j]=t%10+'0';
}
while(jin>0){
a[len]=jin%10+'0';
len++;
jin=jin/10;
}
}
string s="";
for(int i=len-1;i>=0;i--){
s=s+a[i];
}
return s;
} string jia(string s1,string s2){
char s3[300];
if(s1.length()<s2.length()){
swap(s1,s2);
}
int len1=s1.length();
int len2=s2.length();
for(int i=0;i<len1-len2;i++ ){
s2="0"+s2;
}
int jin=0;
for(int i=len1-1;i>=0;i--){
int t=s1[i]-'0'+s2[i]-'0'+jin;
jin=t/10;
s3[i]=t%10+'0';
}
string ss="";
if(jin>0){
ss=ss+"1";
}
for(int i=0;i<len1;i++){
ss=ss+s3[i];
}
return ss;
} int main() {
string s1="0",s2;
int n;
cin>>n;
for(int i=1;i<=n;i++){
s2=jiecheng(i); //算阶乘
s1=jia(s1,s2); //算加
}
cout<<s1;
return 0;
}
比赛已结束。