#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int p,ans[501]={0},l[501]={0};
void add(int a[],int b[]);
int main(){
freopen("mason.in","r",stdin);
freopen("mason.out","w",stdout);
cin>>p;
cout<<floor(p*log10(2.0)+1)<<endl;
ans[0]=1;l[0]=2;
for (;p>0;p>>=1){
if (p%2) add(ans,l);
add(l,l);
}
int c=0;
if (ans[0]<1){
ans[0]=9;c=1;
}
else
ans[0]-=1;
for (int i=1;c && i<500;i++){
ans[i]-=c;
if (ans[i]<0){
c=1;ans[i]+=10;
}
else
c=0;
}
for (int i=499;i>=0;i--){
cout<<ans[i];
if (i%50==0) cout<<endl;
}
}
void add(int a[],int b[]){
int t[501]={0};
for (int i=0;i<500;i++)
for (int j=0;j<500;j++)
if (i+j<500)t[i+j]+=a[i]*b[j];
for (int i=0;i<500;i++){
t[i+1]+=t[i]/10;
a[i]=t[i]%10;
}
}