#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=10000010;
ll n;
char s[N],v[N];
ll cnt;
ll w;
ll maxx;
void jin(ll idx)
{
maxx=max(maxx,idx);
s[idx]-=10;
if(s[idx+1]==0)
s[idx+1]='0';
s[idx+1]++;
if(s[idx+1]>'9')
jin(idx+1);
}
void qf(string f)
{
for(ll i=f.length()-1,j=0;i>=0;i--,j++)
s[j]=f[i];
}
void cheng(string c,ll b)
{
ll len=c.length();
maxx=0;
for(ll i=0;i<len;i++)
s[i]=0;
for(ll i=len-1,k=0;i>=0;i--,k++)
{
ll j=0;
w=(c[i]-'0')*b;
cnt=-1;
while(w)
{
v[++cnt]=w%10+'0';
w/=10;
}
while(j<=cnt)
{
maxx=max(maxx,j+k);
if(s[k+j]==0)
s[k+j]='0';
s[k+j]+=v[j]-'0';
if(s[k+j]>'9')
jin(k+j);
j++;
}
}
for(ll i=0;i<maxx;i++)
{
if(s[i]==0)
s[i]='0';
}
qf(s);
ll ch=strlen(s);
if(ch>500)
{
for(int i=0,j=ch-500;i<500;i++,j++)
s[i]=s[j];
for(int i=500;i<ch;i++)
s[i]=0;
}
}
char ans[510];
ll idx;
ll wei;
int main()
{
scanf("%lld",&n);
wei=(n*0.30102999566)+1;
printf("%lld\n",wei);
s[0]='1';
while(n>=58)
{
cheng(s,288230376151711744);
n-=58;
}
while(n>=10)
{
cheng(s,1024);
n-=10;
}
while(n>=3)
{
cheng(s,8);
n-=3;
}
while(n--)
cheng(s,2);
ll len=strlen(s);
s[len-1]--;
if(len<500)
{
for(int i=1;i<=500-len;i++)
ans[i]='0';
for(int i=0,j=501-len;i<len;i++,j++)
ans[j]=s[i];
}
else
{
for(int i=len-500,j=1;i<len;i++,j++)
ans[j]=s[i];
}
idx=1;
for(int i=1;i<=10;i++)
{
for(int j=1;j<=50;j++,idx++)
{
printf("%c",ans[idx]);
}
printf("\n");
}
return 0;
}