import java.util.Scanner;
public class Main{//输出超出限制,改成c语言就对了,这题java过不了
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
boolean ok[]=new boolean[2000001];
for(int i=2;i<2000001;i++){
if(ok[i]==false){
for(int j=i+i;j<2000001;j+=i)
ok[j]=true;
}
}
while(true){
int n=input.nextInt();
if(n==0)
break;
for(int i=2;i<=n;i++){
if(ok[i]==false)
System.out.print(i+" ");
}
System.out.println();
}
}
}
import java.util.Scanner;
public class Main {
static int MAX=2000001;
static int a[]=new int[MAX];
static boolean ok[]=new boolean[MAX];
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
while(true){
F(MAX-1);
int n=input.nextInt();
if(n==0)
break;
if(a[0]<=n&&a[0]!=0){
System.out.print(a[0]);
}
for(int i=1;a[i]<=n&&a[i]!=0;i++){
System.out.printf(" "+a[i]);
}
System.out.println();
}
}
private static void F(int n) {
int m=(int)(Math.sqrt(n)+1),cot=0;
ok[0]=true;ok[1]=true;
a[cot++]=2;
int i;
for(i=4;i<=n;i+=2) ok[i]=true;
for(i=3;i<=m;i++){
if(ok[i])
continue;
a[cot++]=i;
for(int k=i+i,j=i*i;j<=n;j+=k)
ok[j]=true;
}
for(;i<=n;i++)
if(ok[i]==false)
a[cot++]=i;
}
}