#include<bits/stdc++.h>
using namespace std;
long long a,b; //10^12
bool isPrime1[100000010]; //sqrt(b)以内的质数筛法 埃式筛法
bool isPrime2[100000010]; //标记时对所有的数据做 -a的操作,数组长度转化为b-a
int main(){
cin>>a>>b;
isPrime1[0]=isPrime1[1]=true;
for(long long i=2;(long long)i*(long long)i <= b;i++){//筛[2,sqrt(b)]之间的质数
if(isPrime1[i]==0){
for(long long j=2*i;(long long)j*(long long)j <= b;j+=i){
isPrime1[j]=true;
}
for(long long j=max((long long)2,(a+i-1)/i*i);j<=b;j+=i){
isPrime2[j-a]=true;
}
}
}
for(long long i=a;i<=b;i++){
if(isPrime2[i-a]==false){
cout<<i<<" ";
}
}
return 0;
}
08-22
1385

06-23
3304

04-06
968

09-09
1678

08-31
789

11-07
1826

12-31