#include<stdio.h>
#include<string.h>
char ns[1005];
long n,i,lll,lb,j,ll,q,x,aaa;
/*m*/int a[1000010],c[1000010],b[1000010],aa[1000010],bb[1000010];
void inmult(/*m*/int a[],/*m*/int x,/*m*/int lr)
{long i,t=0;
for(i=lr;i;--i)
{
b[i]=a[i]*x+t;
t=b[i]/10;
b[i]%=10;
}
while(t){b[0]=t%10;t/=10;
++lr;
for(i=lr;i;--i)b[i]=b[i-1];}
lll=lr;
}
void adunare(/*m*/int a[],/*m*/int n,/*m*/int bb[],/*m*/int m)
{long t=0,i;
if(n>m)
{lb=n;
for(i=n;i;--i)
{
b[i]=a[i]+t;
t=0;
if(m-(n-i)>0)b[i]+=bb[m-(n-i)];
if(b[i]>=10)t=b[i]/10;
if(i>1)b[i]%=10;
}}
else
{lb=m;
for(i=m;i;--i)
{
b[i]=bb[i]+t;
t=0;
if(n-(m-i)>0)b[i]+=a[n-(m-i)];
if(b[i]>=10)t=b[i]/10;
if(i>1)b[i]%=10;
}}
if(t){b[0]=t;++lb;for(i=lb;i;--i)b[i]=b[i-1];}
}
void inmult2(/*m*/int l1,/*m*/int l2,/*m*/int a1[],/*m*/int a2[])
{long t;
memset(b,0,sizeof(b));
lb=0;
for(j=1;j<=l2;++j)
{
ll=l1;
t=0;
for(i=l1;i;--i)
{
aa[i]=a1[i]*a2[j]+t;
t=aa[i]/10;
aa[i]%=10;
}
while(t){aa[0]=t%10;t/=10;
++ll;
for(i=ll;i;--i)aa[i]=aa[i-1];}
for(i=ll+1;i<=ll+j-1;++i)
aa[i]=0;
ll+=l2-j;
adunare(b,lb,aa,ll);
}
}
int main()
{
freopen("sarpe.in","r",stdin);
freopen("sarpe.out","w",stdout);
gets(ns);
n=strlen(ns);
for(i=1;i<=n;++i)a[i]=((/*m*/int)ns[i-1])-48;
if(n==1&&a[1]==1){printf("2\n");return 0;}
inmult(a,4,n);
memcpy(bb,b,sizeof(b));
q=lll;
x=n;
while(!a[x]){a[x]=9;--x;}
a[x]-=1;
memcpy(c,a,sizeof(a));
x=n;
while(!a[x]){a[x]=9;--x;}
a[x]-=1;
inmult2(n,n,a,c);
inmult(b,2,lb);
adunare(bb,q,b,lll);
for(i=1;i<=lb;++i)printf("%u",b[i]);
return 0;
}