#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 = n; i <= m; i++)
{
for (int j = 2; j <= sqrt(m); j++)
{
int index = j*j - (n % j*j);
if (!state[index]) continue;
if (i % (j * j) == 0)
{
state[index] = false;
for (int k = index; k <= m; k += (j*j))
state[k] = 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);
for (int i = 0; i < a.size(); i++)
cout << a[i] << ' ';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiBzZWl2ZSAoaW50IG4sIGludCBtKQp7Cgl2ZWN0b3I8aW50PiBwcmltZXM7Cgl2ZWN0b3I8Ym9vbD4gc3RhdGUobSAtIG4gKyAxLCB0cnVlKTsKCglmb3IgKGludCBpID0gbjsgaSA8PSBtOyBpKyspCgl7CgkJZm9yIChpbnQgaiA9IDI7IGogPD0gc3FydChtKTsgaisrKQoJCXsKCQkJaW50IGluZGV4ID0gaipqIC0gKG4gJSBqKmopOwoKCQkJaWYgKCFzdGF0ZVtpbmRleF0pCWNvbnRpbnVlOwoJCQlpZiAoaSAlIChqICogaikgPT0gMCkKCQkJewoJCQkJc3RhdGVbaW5kZXhdID0gZmFsc2U7CgkJCQlmb3IgKGludCBrID0gaW5kZXg7IGsgPD0gbTsgayArPSAoaipqKSkKCQkJCQlzdGF0ZVtrXSA9IGZhbHNlOwoJCQl9CgkJfQoJfQoKCWZvciAoaW50IGkgPSAwOyBpIDwgKG0gLSBuICsgMSk7IGkrKykKCQlpZiAoc3RhdGVbaV0pCXByaW1lcy5wdXNoX2JhY2soaSArIG4pOwoKCXJldHVybiBwcmltZXM7Cn0KCmludCBtYWluKCkKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWNpbi50aWUoMCk7Cgljb3V0LnRpZSgwKTsKCglpbnQgTiwgTTsKCWNpbiA+PiBOID4+IE07CgoJdmVjdG9yPGludD4gYTsKCWEgPSBzZWl2ZShOLCBNKTsKCglmb3IgKGludCBpID0gMDsgaSA8IGEuc2l6ZSgpOyBpKyspCgkJY291dCA8PCBhW2ldIDw8ICcgJzsKCglyZXR1cm4gMDsKfQ==