#include <iostream>
#include <string>
#include <sstream>
#include <stdio.h>
#include <vector>
#include <math.h>
using namespace std;
void findPrimes(int min,int max){
if(min == 1)
min++;
int vectorsize = int(sqrt(max-1));
vector<bool> primesVector(vectorsize,true);
int arrSize = max-min+1;
bool mArr[arrSize];
for(int i=0;i<vectorsize;i++){
if(primesVector[i] == true){
i += i+2;
while(i<vectorsize){
primesVector[i] = false;
i += i+2;
}
}
}
for(int i=0;i<vectorsize;i++){
if(primesVector[i]){
for(int j=0;j<arrSize;j++){
if((j+min)%(i+2)==0){
if((j+min)==(i+2))
j += i+2;
while(j<arrSize){
mArr[j] = true;
j += i+2;
}
}
}
}
}
for(int j=0;j<arrSize;j++){
if(mArr[j] == false)
cout << j+min << endl;
}
}
int main () {
int n;
cin >> n;
for(int i=0;i<n;i++){
int min, max;
cin >> min >> max;
findPrimes(min,max);
if(i<n-1)
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4gCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWF0aC5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBmaW5kUHJpbWVzKGludCBtaW4saW50IG1heCl7CiAgICBpZihtaW4gPT0gMSkKICAgICAgICBtaW4rKzsKICAgIGludCB2ZWN0b3JzaXplID0gaW50KHNxcnQobWF4LTEpKTsKICAgIHZlY3Rvcjxib29sPiBwcmltZXNWZWN0b3IodmVjdG9yc2l6ZSx0cnVlKTsKICAgIGludCBhcnJTaXplID0gbWF4LW1pbisxOwogICAgYm9vbCBtQXJyW2FyclNpemVdOwogICAgZm9yKGludCBpPTA7aTx2ZWN0b3JzaXplO2krKyl7CiAgICAgICAgaWYocHJpbWVzVmVjdG9yW2ldID09IHRydWUpewogICAgICAgICAgICBpICs9IGkrMjsKICAgICAgICAgICAgd2hpbGUoaTx2ZWN0b3JzaXplKXsKICAgICAgICAgICAgICAgIHByaW1lc1ZlY3RvcltpXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgaSArPSBpKzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAgICAgCiAgICBmb3IoaW50IGk9MDtpPHZlY3RvcnNpemU7aSsrKXsKICAgICAgICBpZihwcmltZXNWZWN0b3JbaV0pewogICAgICAgICAgICBmb3IoaW50IGo9MDtqPGFyclNpemU7aisrKXsKICAgICAgICAgICAgICAgIGlmKChqK21pbiklKGkrMik9PTApewogICAgICAgICAgICAgICAgICAgIGlmKChqK21pbik9PShpKzIpKQogICAgICAgICAgICAgICAgICAgICAgICBqICs9IGkrMjsKICAgICAgICAgICAgICAgICAgICB3aGlsZShqPGFyclNpemUpewogICAgICAgICAgICAgICAgICAgICAgICBtQXJyW2pdID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgaiArPSBpKzI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBqPTA7ajxhcnJTaXplO2orKyl7CiAgICAgICAgaWYobUFycltqXSA9PSBmYWxzZSkKICAgICAgICBjb3V0IDw8IGorbWluIDw8IGVuZGw7CiAgICB9Cn0KCmludCBtYWluICgpIHsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICBpbnQgbWluLCBtYXg7CiAgICAgICAgY2luID4+IG1pbiA+PiBtYXg7CiAgICAgICAgZmluZFByaW1lcyhtaW4sbWF4KTsKICAgICAgICBpZihpPG4tMSkKICAgICAgICAgICAgY291dCA8PCBlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0=