const max=1000000;
var a:array[1..100000] of longint;
kt:array[1..max] of boolean;
n,m,i:longint;
//
procedure sang_ngto; //sàng nguyên tố, tạo ra 1 dãy các số nguyên tố liên tiếp
var i,j:longint;
begin
fillchar(kt,sizeof(kt),true);
for i:=2 to trunc(sqrt(max)) do
begin
j:=i*i;
while j<=max do
begin
kt[j]:=false;
j:=j+i;
end;
end;
m:=0;
for i:=2 to max do
if kt[i]=true then begin
inc(m);
a[m]:=i;
end;
end;
//
begin
read(n);
sang_ngto;
for i:=1 to m do
if (n>=a[i]) and (n<a[i+1]) then begin
write(a[i+1],' ',a[i+2],' ',a[i+3]);
exit;
end;
end.