program maxfact (input,output);
var N , i, j ,m : integer;
a : array [1..5000000] of boolean;
begin
read(N);
for i:=1 to N do a[i]:=true;
m:=trunc(sqrt(N));
for i:=2 to m do
if a[i] then for j:=2 to N din i do a[i*j]:=false;
for i:=2 to N do if a[i] then write(i, ' ');
end.
cHJvZ3JhbSBtYXhmYWN0IChpbnB1dCxvdXRwdXQpOwogICAgdmFyIE4gLCBpLCBqICxtIDogaW50ZWdlcjsKICAgICAgICBhIDogYXJyYXkgWzEuLjUwMDAwMDBdIG9mIGJvb2xlYW47CmJlZ2luCiAgICByZWFkKE4pOwogICAgZm9yIGk6PTEgdG8gTiBkbyBhW2ldOj10cnVlOwogICAgbTo9dHJ1bmMoc3FydChOKSk7CiAgICBmb3IgaTo9MiB0byBtIGRvIAogICAgICBpZiBhW2ldIHRoZW4gZm9yIGo6PTIgdG8gTiBkaW4gaSBkbyBhW2kqal06PWZhbHNlOwogICAgZm9yIGk6PTIgdG8gTiBkbyBpZiBhW2ldIHRoZW4gd3JpdGUoaSwgJyAnKTsgICAgCmVuZC4=