const
      nm=1000000;
var
    p:array[1..1000000] of byte;
    n,i,j,l,x,y:longint;
    sol:array[1..1000] of longint;

begin
read(n);
fillchar(p,sizeof(p),0);
x:=1;
y:=1;sol[1]:=1;
for i:=2 to nm do
if p[i]=0 then begin
inc(x,i);inc(y);
sol[y]:=i;j:=i;
if x>=n then begin
   writeln(y);
   for l:=1 to y do write(sol[l],' ');halt;end;
  while j<=nm do begin
  p[j]:=1;inc(j,i);end;
end;
end.