//沙茶被夏令营虐了、哭瞎
//高精度乘法+减法解决
Type hugeint=array[0..1000]of longint;
Var n:qword;
ans,two:hugeint;
i:longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;
procedure print(a:hugeint);
var
i:longint;
begin
for i:=a[0] downto 1 do
write(a[i]);
writeln;
end;
Function minues(a,b:hugeint):hugeint;
var
i,len:longint;
begin
len:=max(a[0],b[0]);
for i:=1 to len do
begin
a[i]:=a[i]-b[i];
if a[i]<0 then
begin
dec(a[i+1]);
inc(a[i],10);
end;
end;
while (len>1) and (a[len]=0) do dec(len);
a[0]:=len;minues:=a;
end;
Function multdj(a:hugeint;b:longint):hugeint;
var
i,len:longint;
begin
len:=a[0];
for i:=1 to len do
a[i]:=a[i]*b;
for i:=1 to len+10 do
if a[i]>9 then
begin
inc(a[i+1],a[i] div 10);
a[i]:=a[i] mod 10;
end;
inc(len,10);
while a[len]=0 do dec(len);
a[0]:=len;
multdj:=a;
end;
begin
readln(n);
n:=n;
ans[0]:=1;
ans[ans[0]]:=1;
two:=ans;
two[two[0]]:=2;
for i:=1 to n+1 do ans:=multdj(ans,2);
ans:=minues(ans,two);
print(ans);
end.