#include <iostream>
#include<math.h>
#include<vector>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
bool mark[1000001];
vector<int>prime;
void seive()
{
int i,j;
mark[0]=mark[1]=1;
for(i=2;i<=1000000;i++)
{
if(!mark[i])
{
prime.push_back(i);
for(j=2;j<=1000001;j++)
mark[i*j]=1;
}
}
prime[0]=2;
}
int main() {
// your code goes here
int test,j;
cin>>test;
seive();
while(test--)
{
int m,n,i,k=0;
int seg[1000001]={0};
cin>>m>>n;
if(n<=1000000)
{
for(i=m;i<=n;i++)
{
if(mark[i]==0)
cout<<i<<endl;
}
}
else
{
for(i=0;i<prime.size();i++)
{
for(j= (m/prime[i]); j<=n; j+=prime[i])
{
if(j>m)
seg[j-m]=1;
}
}
for(i=0;i<=1000000;i++)
{
if(seg[i]==0)
cout<<m+i<<endl;
}
}
cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxtYXRoLmg+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPHN0ZGlvLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIG1hcmtbMTAwMDAwMV07Cgp2ZWN0b3I8aW50PnByaW1lOwoKdm9pZCBzZWl2ZSgpCnsKaW50IGksajsKbWFya1swXT1tYXJrWzFdPTE7Cgpmb3IoaT0yO2k8PTEwMDAwMDA7aSsrKQp7CiAgaWYoIW1hcmtbaV0pCiAgewogIHByaW1lLnB1c2hfYmFjayhpKTsKICBmb3Ioaj0yO2o8PTEwMDAwMDE7aisrKQogIG1hcmtbaSpqXT0xOwogIH0KfQpwcmltZVswXT0yOwp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCB0ZXN0LGo7CgljaW4+PnRlc3Q7CglzZWl2ZSgpOwoJCgl3aGlsZSh0ZXN0LS0pCgl7CglpbnQgbSxuLGksaz0wOwoJaW50IHNlZ1sxMDAwMDAxXT17MH07CgljaW4+Pm0+Pm47CgkKCWlmKG48PTEwMDAwMDApCgl7CiAgICBmb3IoaT1tO2k8PW47aSsrKQogICAgewogICAgICBpZihtYXJrW2ldPT0wKQogICAgICBjb3V0PDxpPDxlbmRsOwogICAgfQogICAgfQogICAgZWxzZQogICAgewogICAgIGZvcihpPTA7aTxwcmltZS5zaXplKCk7aSsrKQogICAgIHsgCiAgICAgICAKICAgICAgIGZvcihqPSAobS9wcmltZVtpXSk7IGo8PW47IGorPXByaW1lW2ldKQogICAgICAgewogICAgICAgICBpZihqPm0pCiAgICAgICAgIHNlZ1tqLW1dPTE7CiAgICAgICB9CiAgICB9CiAgICAKICAgIGZvcihpPTA7aTw9MTAwMDAwMDtpKyspCiAgICB7CiAgICAgIGlmKHNlZ1tpXT09MCkKICAgICAgY291dDw8bStpPDxlbmRsOwogICAgfQogICAgfQogICAgY291dDw8ZW5kbDsKICAgIH0KCXJldHVybiAwOwp9