uses crt;
var fin, fout : text;
a : longint;
function isPrime(a : longint): boolean;
var i : integer;
f : boolean;
begin
f := true;
for i := 2 to round(sqrt(a)) do if a mod i = 0 then begin
f := false;
break;
end;
isPrime := f;
end;
function isPalindrom(a : longint): boolean;
var m : array [1..20] of byte;
f : boolean;
i, c : integer;
begin
f := true;
c := 0;
while a <> 0 do begin
c := c + 1;
m[c] := a mod 10;
a := a div 10;
end;
for i := 1 to c div 2 do if m[i] <> m[c - i + 1] then
begin
f := false;
break;
end;
isPalindrom := f;
end;
begin
assign(fin, 'input.txt');
assign(fout, 'output.txt');
reset(fin);
rewrite(fout);
while not eof(fin) do begin
readln(fin, a);
if isPrime(a) and isPalindrom(a) then writeln(fout, a);
end;
close(fin);
close(fout);
readln;
end.