#include<stdio.h>
#include<string.h>
char ns[1005];
int n,i,lll,lc,j,ll,q,x,aaa;
int a[1000005],b[1000005],c[1000005],aa[1000005],bb[1000005],a1[1000005];
void inmult(int a[],int x,int lr)
{int 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(int a[],int n,int b[],int m)
{int t=0,i;
if(n>m)
{lc=n;
for(i=n;i;--i)
{
c[i]=a[i]+t;
t=0;
if(m-(n-i)>0)c[i]+=b[m-(n-i)];
if(c[i]>=10)t=c[i]/10;
if(i>1)c[i]%=10;
}}
else
{lc=m;
for(i=m;i;--i)
{
c[i]=b[i]+t;
t=0;
if(n-(m-i)>0)c[i]+=a[n-(m-i)];
if(c[i]>=10)t=c[i]/10;
if(i>1)c[i]%=10;
}}
if(t){c[0]=t;++lc;for(i=lc;i;--i)c[i]=c[i-1];}
}
void inmult2(int l1,int l2,int a1[],int a2[])
{int t;
memset(c,0,sizeof(c));
lc=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(c,lc,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]=((int)ns[i-1])-48;
if(n==1&&a[1]==1){printf("1\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(a1,a,sizeof(a));
x=n;
while(!a[x]){a[x]=9;--x;}
a[x]-=1;
inmult2(n,n,a,a1);
inmult(c,2,lc);
adunare(bb,q,b,lll);
for(i=1;i<=lc;++i)printf("%ld",c[i]);
return 0;
}