#include<bits/stdc++.h>
using namespace std;
struct long_int{
long long a[101],len;
}a,sum;
long_int add(long_int a,long_int b){
long_int sum;
sum.len=max(a.len,b.len);
sum.a[sum.len]=0;
for(int i=sum.len;i>=1;i--){
sum.a[i-1]=0;
sum.a[i+1]+=(a.a[i]+b.a[i])/10;
sum.a[i]+=(a.a[i]+b.a[i])%10;
}
if(sum.a[sum.len+1]){
sum.len++;
}
return sum;
}
long_int mul(long_int a,int b){
long_int pro;
pro.len=a.len;
for(int i=100;i>=pro.len;i--){
pro.a[i]=0;
}
for(int i=pro.len;i>=1;i--){
pro.a[i-1]=0;
pro.a[i+3]+=(a.a[i]*b)/1000;
pro.a[i+2]+=(a.a[i]*b)/100%10;
pro.a[i+1]+=(a.a[i]*b)/10%10;
pro.a[i]+=(a.a[i]*b)%10;
}
if(pro.a[pro.len+2]){
pro.len+=2;
}
else if(pro.a[pro.len+1]){
pro.len++;
}
return pro;
}
int main(){
int n;
a.a[1]=1;
a.len=1;
cin>>n;
if(n==0){
cout<<0;
return 0;
}
if(n==1){
cout<<1;
return 1;
}
for(int i=1;i<=n;i++){
a=mul(a,i);
sum=add(a,sum);
for(int i=a.len;i>=1;i--){
cout<<a.a[i];
}
cout<<endl;
}
for(int i=sum.len;i>=1;i--){
cout<<sum.a[i];
}
}