rt
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int k,n;
char a1[50001],b1[50001];
int a[50001],b[50001],len,c[50001];
void cd()
{
int i,j;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
a[0]=strlen(a1);
b[0]=strlen(b1);
for (i=1;i<=a[0];++i)
a[i]=a1[a[0]-i]-'0';
for (i=1;i<=b[0];++i)
b[i]=b1[b[0]-i]-'0';
for (i=1;i<=a[0];++i)
for (j=1;j<=b[0];++j)
c[i+j-1]+=a[i]*b[j];
len=a[0]+b[0];
for (i=1;i<len;++i)
if(c[i]>9)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
while (c[len]==0&&len>1)
len--;
return ;
}
int main()
{
ll i,j,flag,ans=0;
cin>>n;
if(n%3==0)
{
k=n/3;
flag=0;
}
if(n%3==1)
{
k=(n-4)/3+1;
flag=4;
}
if(n%3==2)
{
k=(n-2)/3+1;
flag=2;
}
if(flag>0)
{
a1[0]='1';
b1[0]='3';
for(i=1;i<=k-1;i++)
{
cd();
ll z=0;
for(j=len;j>=1;j--)
{
a1[z]=c[j]+'0';
z++;
}
}
b1[0]=flag+'0';
cd();
cout<<len<<endl;
if(len>=100)
{
for(i=100;i>=1;i--)
cout<<c[i];
return 0;
}
for(i=len;i>=1;i--)
cout<<c[i];
}
else
{
a1[0]='1';
for(i=1;i<=k;i++)
{
b1[0]='3';
cd();
ll z=0;
for(j=len;j>=1;j--)
{
a1[z]=c[j]+'0';
z++;
}
}
cout<<len<<endl;
if(len>=100)
{
for(i=100;i>=1;i--)
cout<<c[i];
return 0;
}
for(i=len;i>=1;i--)
cout<<c[i];
}
return 0;
}