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.