#include<stdio.h>
#include<iostream.h>
#include<string.h>
int n[10003], s[10003], b[10003], i[10003], c[10003];
void citire()
{
char s[10003];
freopen("sarpe.in","r",stdin);
scanf("%s",&s);
int i, l;
l=strlen(s);
for (i=0; i<l; i++)
n[l-i]=s[i]-'0';
n[0]=strlen(s);
}
void inmultire(int A[], int B)
{
int i, t = 0;
for (i = 1; i <= A[0] || t; i++, t /= 10)
A[i] = (t += A[i] * B) % 10;
A[0] = i - 1;
}
void add(int A[], int B[])
{
long long i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0]= i - 1;
}
int compar(int i[], int n[])
{
int j;
if(i[0]>n[0]) return 1;
else //daca sunt egale:
{
for(j=n[0];j>=1;j--)
if(i[j]>n[j]) return 0;
return 1;
}
return 0;
}
void scadere(int A[], int B[])
{
int i, t = 0;
for (i = 1; i <= A[0]; i++)
A[i] += (t = (A[i] -= B[i] + t) < 0) * 10;
for (; A[0] > 1 && !A[A[0]]; A[0]--);
}
void mul(int A[], int B[])
{
int i, j, t, C[10003];
memset(C, 0, sizeof(C));
for (i = 1; i <= A[0]; i++)
{
for (t=0, j=1; j <= B[0] || t; j++, t/=10)
C[i+j-1]=(t+=C[i+j-1]+A[i]*B[j])%10;
if (i + j - 2 > C[0]) C[0] = i + j - 2;
}
memcpy(A, C, sizeof(C));
}
void afis()
{
freopen("sarpe.out","w",stdout);
for (int i=s[0]; i>=1; i--)
printf("%d",s[i]);
}
int main()
{
citire();
b[0]=1;
b[1]=2;
if (n[0]==1 && n[1]==1) { freopen("sarpe.out","w",stdout); printf("2");}
else if (n[0]==1 && n[1]==2) { freopen("sarpe.out","w",stdout); printf("8");}
else{
add(s,n);
inmultire(s,4);
scadere(n,b);
memcpy(c,n,sizeof(n));
b[1]=1;
add(n,b);
mul(c,n);
b[1]=2;
inmultire(c,2);
add(s,c);
afis(); }
return 0;
}