#include<bits/stdc++.h>
using namespace std;
int a[500]={1},b[1005]={};
void sqr(){
memset(b,0,sizeof(b));
for(int i=0;i<=499;i++){
for(int j=0;j<=499;j++){
b[i+j]+=a[i]*a[j];
}
}
for(int i=0;i<=499;i++){
a[i]=b[i];
}
for(int i=1;i<=499;i++){
a[i]+=a[i-1]/10;
a[i-1]%=10;
}
a[499]%=10;
}
void multi(){
for(int i=0;i<=499;i++){
a[i]*=2;
}
for(int i=1;i<=499;i++){
a[i]+=a[i-1]/10;
a[i-1]%=10;
}
a[499]%=10;
}
int main(){
int k[25]={},zz=0;
int n;
cin>>n;
int m=n;
while(n>0){
zz++;
k[zz]=n%2;
n/=2;
}
for(int i=zz;i>=1;i--){
sqr();
if(k[zz])multi();
}
a[0]-=1;
printf("%d",(int)floor(log10(2)*m)+1);
for(int i=9;i>=0;i--){
cout<<endl;
for(int j=49;j>=0;j--){
cout<<a[i*50+j];
}
}
return 0;
}