uses crt;
var a:array[0..100000000] of longint;
b:array[0..1000] of longint;
x,n,d,k,i,j,temp,t:longint;
function isPrimeNumber(n:longint):boolean;
var i:longint;
begin
if n<2 then exit(false);
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then exit(false);
exit(true);
end;
function Count(n:longint):word;
var d:word;
begin
d:=0;
while n<>0 do
begin
inc(d);
n:=n div 10;
end;
exit(d);
end;
begin
clrscr;
readln(k);
a[1]:=2;
x:=2;
n:=1;
d:=0;
while d<=k do
begin
inc(x);
while isPrimeNumber(x)=false do inc(x);
t:=1;
for j:=1 to Count(x) do
t:=t*10;
temp:=a[n]*t+x;
if isPrimeNumber(temp)=true then
begin
inc(d);
b[d]:=temp;
end;
inc(n);
a[n]:=x;
end;
writeln(b[k]);
readln;
end.