#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) + 1; i++)
{
int index = i*i - (n % i*i);
for (int j = index; j < state.size(); j += i*i)
state[j] = false;
}
for (int i = 0; i < state.size(); 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 = seive(N, M);
for (int i = 0; i < a.size(); i++)
cout << a[i] << ' ';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiBzZWl2ZSAoaW50IG4sIGludCBtKQp7Cgl2ZWN0b3I8aW50PiBwcmltZXM7Cgl2ZWN0b3I8Ym9vbD4gc3RhdGUobSAtIG4gKyAxLCB0cnVlKTsKCglmb3IgKGludCBpID0gMjsgaSA8IHNxcnQobSkgKyAxOyBpKyspCgl7CgkJaW50IGluZGV4ID0gaSppIC0gKG4gJSBpKmkpOwoKCQlmb3IgKGludCBqID0gaW5kZXg7IGogPCBzdGF0ZS5zaXplKCk7IGogKz0gaSppKQoJCQlzdGF0ZVtqXSA9IGZhbHNlOwoJfQoKCWZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGUuc2l6ZSgpOyBpKyspCgkJaWYgKHN0YXRlW2ldKQlwcmltZXMucHVzaF9iYWNrKGkgKyBuKTsKCglyZXR1cm4gcHJpbWVzOwp9CgppbnQgbWFpbigpCnsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOwoJY291dC50aWUoMCk7CgoJaW50IE4sIE07CgljaW4gPj4gTiA+PiBNOwoKCXZlY3RvcjxpbnQ+IGEgPSBzZWl2ZShOLCBNKTsKCglmb3IgKGludCBpID0gMDsgaSA8IGEuc2l6ZSgpOyBpKyspCgkJY291dCA8PCBhW2ldIDw8ICcgJzsKCXJldHVybiAwOwp9