#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
using ll = long long;
int main() {
ios_base::sync_with_stdio(false);
int t = 0;
cin >> t;
vector<ll> tCases;
while (t--) {
ll first = 0, n = 0;
cin >> first >> n;
cin.get();
tCases.emplace_back(n);
tCases.emplace_back(first);
}
ll n = *max_element(tCases.begin(), tCases.end());
vector<bool> primes(n+1, 0);
primes[0] = 1;
primes[1] = 1;
for (ll i = 4; i <= n; i += 2) {
primes[i] = 1;
}
ll sqrt_n = sqrt(n);
for (ll i = 2; i <= sqrt_n; ++i) {
if (primes[i] == 0) {
for (ll j = i*i, dj = i+i; j <= n; j += dj) {
primes[j] = 1;
}
}
}
ll size = primes.size();
for (ll i = 0, j = 1; j < size; i += 2, j += 2) {
for (ll k = primes[i], l = primes[j]; k <= l; ++k) {
if (primes[k] == 0) {
cout << k << '\n';
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKaW50IG1haW4oKSB7CiAgICAKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoKICAgIGludCB0ID0gMDsKICAgIGNpbiA+PiB0OwogICAgdmVjdG9yPGxsPiB0Q2FzZXM7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgbGwgZmlyc3QgPSAwLCBuID0gMDsKICAgICAgICBjaW4gPj4gZmlyc3QgPj4gbjsKICAgICAgICBjaW4uZ2V0KCk7CiAgICAgICAgdENhc2VzLmVtcGxhY2VfYmFjayhuKTsKICAgICAgICB0Q2FzZXMuZW1wbGFjZV9iYWNrKGZpcnN0KTsKICAgIH0KICAgIAogICAgbGwgbiA9ICptYXhfZWxlbWVudCh0Q2FzZXMuYmVnaW4oKSwgdENhc2VzLmVuZCgpKTsKICAgIHZlY3Rvcjxib29sPiBwcmltZXMobisxLCAwKTsKICAgIHByaW1lc1swXSA9IDE7CiAgICBwcmltZXNbMV0gPSAxOwogICAgCiAgICBmb3IgKGxsIGkgPSA0OyBpIDw9IG47IGkgKz0gMikgewogICAgICAgIHByaW1lc1tpXSA9IDE7CiAgICB9CiAgICAKICAgIGxsIHNxcnRfbiA9IHNxcnQobik7CiAgICBmb3IgKGxsIGkgPSAyOyBpIDw9IHNxcnRfbjsgKytpKSB7CiAgICAgICAgaWYgKHByaW1lc1tpXSA9PSAwKSB7CiAgICAgICAgICAgIGZvciAobGwgaiA9IGkqaSwgZGogPSBpK2k7IGogPD0gbjsgaiArPSBkaikgewogICAgICAgICAgICAgICAgcHJpbWVzW2pdID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAKICAgIGxsIHNpemUgPSBwcmltZXMuc2l6ZSgpOwogICAgZm9yIChsbCBpID0gMCwgaiA9IDE7IGogPCBzaXplOyBpICs9IDIsIGogKz0gMikgewogICAgICAgIGZvciAobGwgayA9IHByaW1lc1tpXSwgbCA9IHByaW1lc1tqXTsgayA8PSBsOyArK2spIHsKICAgICAgICAgICAgaWYgKHByaW1lc1trXSA9PSAwKSB7CiAgICAgICAgICAgICAgICBjb3V0IDw8IGsgPDwgJ1xuJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgCiAgICByZXR1cm4gMDsKfQo=