#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
void Add(int a[],int b[]){
int n=a[0]>b[0]?a[0]:b[0];
int lena=a[0],lenb=b[0];
a[0]=n;int c=0;
for(int i=1;i<=n;i++){
if(lena<i) a[i]=0;
if(lenb<i) b[i]=0;
a[i]+=b[i]+c;c=0;
if(a[i]>=10){
c=a[i]/10;
a[i]=a[i]%10;
if(i==n) a[0]++;
}
}
}
void mul_a(int a[],int b[],int n){
int c=0;
int k=a[0];
b[0]=k;
for(int i=1;i<=k;i++){
b[i]=a[i]*n+c;c=0;
if(b[i]>=10){
c=b[i]/10;b[i]=b[i]%10;
}
if(i==k &&c!=0){
b[0]=a[0]+1;
b[k+1]=c;c=0;
}
}
}
void mul_b(int a[],int n){
int b[100],c[100];
int k=n%10;
n=n/10;
mul_a(a,b,k);
mul_a(a,c,n);
for(int i=c[0];i>0;i--){
c[i+1]=c[i];
}
c[1]=0;c[0]++;
Add(b,c);
memcpy(a,b,sizeof(b));
}
int main(){
int n;
cin>>n;
int sum[100]={0},s[100]={0},temp[100]={0};
sum[0]=1;sum[1]=0;
s[0]=1;s[1]=1;
for(int i=1;i<=n;i++){
if(i<10){
mul_a(s,temp,i);
memcpy(s,temp,sizeof(temp));
}else{
mul_b(s,i);
}
for(int i=s[0];i>0;i--){
cout<<s[i];
}
cout<<endl;
Add(sum,s);
}
for(int i=sum[0];i>0;i--){
cout<<sum[i];
}
cout<<endl;
return 0;
}