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
for j:=2 to m do a[i*j]:=false;
for i:=1 to N do
begin
if (a[i]=true) then write(a[i], ' ')
end;
end.
cHJvZ3JhbSBtYXhmYWN0IChpbnB1dCxvdXRwdXQpOwogICAgdmFyIE4gLCBpLCBqICxtIDogaW50ZWdlcjsKICAgICAgICBhIDogYXJyYXkgWzEuLjUwMDAwMDBdIG9mIGJvb2xlYW47CmJlZ2luCiAgICByZWFkKE4pOwogICAgZm9yIGk6PTEgdG8gTiBkbyBhW2ldOj10cnVlOwogICAgbTo9dHJ1bmMoc3FydChOKSk7CiAgICBmb3IgaTo9MiB0byBtIGRvCiAgICAgICBmb3Igajo9MiB0byBtIGRvIGFbaSpqXTo9ZmFsc2U7CiAgICBmb3IgaTo9MSB0byBOIGRvIAogICAgICAgYmVnaW4KICAgICAgICAgaWYgKGFbaV09dHJ1ZSkgdGhlbiB3cml0ZShhW2ldLCAnICcpCiAgICAgICBlbmQ7ICAgIAplbmQu