#include<bits/stdc++.h>
using namespace std;
const int MAXLEN=500+10;
struct bigint
{
int len,a[MAXLEN];
bigint(){memset(a,0,sizeof(a));len=1;}
void print()
{
for(int i=9;i>=0;--i)
{
for(int j=50;j;--j)
{
int tlen=i*50+j;
cout<<a[tlen];
}
cout<<'\n';
}
}
}ans2,m2;
bigint fix(bigint a)
{
while(a.a[a.len+1])++a.len;
for(int i=1;i<a.len;i++)
{
if(a.a[i]<0)
{
--a.a[i+1];
a.a[i]+=10;
}
a.a[i+1]+=a.a[i]/10;
a.a[i]%=10;
}
while(a.a[a.len]>=10)
{
a.a[a.len+1]+=a.a[a.len]/10;
a.a[a.len]%=10;
++a.len;
}
return a;
}
bigint operator*(bigint a,bigint b)
{
bigint c;
int alen=min(500,a.len);
for(int i=1;i<=alen;i++)
{
int blen=min(500-i+1,b.len);
for(int j=1;j<=blen;j++)
{
c.a[i+j-1]+=a.a[i]*b.a[j];
}
}
return fix(c);
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int P;cin>>P;
int ans1=log10(2)*P+1;
cout<<ans1<<'\n';
m2.a[1]=2;
ans2.a[1]=1;
while(P)
{
if(P&1)
{
ans2=ans2*m2;
}
m2=m2*m2;
P>>=1;
}
--ans2.a[1];
ans2=fix(ans2);
ans2.print();
return 0;
}