#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int p,base[1000],ans[2000],count;
void gjc(int a[],int b[],int c[]){
int a1[1000],a2[1000];
for(int i = 1;i <= 500;i++){
a1[i] = a[i];
a2[i] = b[i];
}
for(int i = 1;i <= 2000;i++){
c[i] = 0;
}
for(int i = 1;i <= 500;i++){
for(int j = 1;j <= 500;j++){
c[i + j - 1] += a1[i] * a2[i];
c[i + j] += c[i + j - 1] / 10;
c[i + j - 1] %= 10;
}
}
}
int main(){
cin>>p;
double h = log10(2);
cout<<(int)(h * p + 1)<<endl;
ans[1] = 1;
base[1] = 2;
while(p != 0){
if(p & 1 != 0){
gjc(ans,base,ans);
}
gjc(base,base,base);
p >>= 1;
}
ans[1]--;
for(int i = 500;i >= 1;i--){
cout<<ans[i];
count++;
if(count == 50){
cout<<endl;
count = 0;
}
}
return 0;
}