const maxn=18;
var i,j,n:integer;
s:array[0..maxn] of int64;
begin
assign(input,'stack.in');
reset(input);
assign(output,'stack.out');
rewrite(output);
readln(n);
s[0]:=1;
for i:=1 to maxn do
begin
s[i]:=0;
for j:=0 to i-1 do s[i]:=s[i]+s[j]*s[i-j-1];
end;
writeln(s[n]);
close(input);
close(output);
end.
{var i,j,n:integer;
f:array[0..18,-1..18] of longint;
begin
readln(n);
f[0,-1]:=1;
for i:=0 to n do
for j:=0 to n-i do
begin
if i=0 then f[i,j]:=f[i,j-1]
else if j=0 then f[i,j]:=f[i-1,j+1]
else f[i,j]:=f[i-1,j+1]+f[i,j-1]
end;
writeln(f[n,0]);
end. }