#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
vector<int> seive (int n, int m)
{
vector<int> primes;
vector<bool> state(m - n + 1, true);
for (int i = 2; i <= sqrt(m); i++)
{
int index = i*i - (n % i*i);
for (int j = i*i - (n % i*i); j < state.size(); j += i*i)
state[j] = false;
}
for (int i = 0; i < (m - n + 1); i++)
if (state[i]) primes.push_back(i + n);
return primes;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int N, M;
cin >> N >> M;
vector<int> a;
a = seive(N, M);
//cout << seive(N, M).size();
for (int i = 0; i < a.size(); i++)
cout << a[i] << ' ';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiBzZWl2ZSAoaW50IG4sIGludCBtKQp7Cgl2ZWN0b3I8aW50PiBwcmltZXM7Cgl2ZWN0b3I8Ym9vbD4gc3RhdGUobSAtIG4gKyAxLCB0cnVlKTsKCglmb3IgKGludCBpID0gMjsgaSA8PSBzcXJ0KG0pOyBpKyspCgl7CgkJaW50IGluZGV4ID0gaSppIC0gKG4gJSBpKmkpOwoKCQlmb3IgKGludCBqID0gaSppIC0gKG4gJSBpKmkpOyBqIDwgc3RhdGUuc2l6ZSgpOyBqICs9IGkqaSkKCQkJc3RhdGVbal0gPSBmYWxzZTsKCX0KCglmb3IgKGludCBpID0gMDsgaSA8IChtIC0gbiArIDEpOyBpKyspCgkJaWYgKHN0YXRlW2ldKQlwcmltZXMucHVzaF9iYWNrKGkgKyBuKTsKCglyZXR1cm4gcHJpbWVzOwp9CgppbnQgbWFpbigpCnsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOwoJY291dC50aWUoMCk7CgoJaW50IE4sIE07CgljaW4gPj4gTiA+PiBNOwoKCXZlY3RvcjxpbnQ+IGE7CglhID0gc2VpdmUoTiwgTSk7CgoJLy9jb3V0IDw8IHNlaXZlKE4sIE0pLnNpemUoKTsKCglmb3IgKGludCBpID0gMDsgaSA8IGEuc2l6ZSgpOyBpKyspCgkJY291dCA8PCBhW2ldIDw8ICcgJzsKCglyZXR1cm4gMDsKfQ==