import io, os, sys
input=(io.BytesIO(os.read(0, os.fstat(0).st_size)).readline)
nt=int(input())
nux=0
nin=[]
notp=set()
notp={'0','2','4','5','6','8'}
#Z wyjatkien 2 i 5, liczby na pewno nie-pierwsze koncza sie na 0,2,4,5,6,8
for it in range(nt):
nl, nu = [int(s) for s in input().split()]
if(nl>5):
while str(nl)[-1] in notp:
nl+=1
while str(nu)[-1] in notp:
nu-=1
nin.append([nl,nu])
if nu>nl: #ignorujemy przypadki typu 2147483644 do 2147483646
if nu>nux: nux=nu
ptab=bytearray([False]*(nux+1)) #zero domyslnie.albo np.bytearray([1] * 1000
# print(sys.getsizeof(ptab))
for i in range(2, nux+1): # generujemy tablice raz bo i tak jest zawsze od 2
if not ptab[i]:
for j in range(i*i, nux+1, i):
ptab[j]=True
for it in range(nt):
nl,nu = nin[it]
if nu>nl:
for j in range(nl,nu+1):
if not ptab[j]: sys.stdout.write(str(j)+'\n')
#if not ptab[j]: print(j)
aW1wb3J0IGlvLCBvcywgc3lzCgppbnB1dD0oaW8uQnl0ZXNJTyhvcy5yZWFkKDAsIG9zLmZzdGF0KDApLnN0X3NpemUpKS5yZWFkbGluZSkKCm50PWludChpbnB1dCgpKQpudXg9MApuaW49W10Kbm90cD1zZXQoKQpub3RwPXsnMCcsJzInLCc0JywnNScsJzYnLCc4J30KI1ogd3lqYXRraWVuIDIgaSA1LCBsaWN6YnkgbmEgcGV3bm8gbmllLXBpZXJ3c3plIGtvbmN6YSBzaWUgbmEgMCwyLDQsNSw2LDgKCmZvciBpdCBpbiByYW5nZShudCk6CiAgICBubCwgbnUgPSBbaW50KHMpIGZvciBzIGluIGlucHV0KCkuc3BsaXQoKV0KICAgIGlmKG5sPjUpOgogICAgICAgIHdoaWxlIHN0cihubClbLTFdIGluIG5vdHA6CiAgICAgICAgICAgIG5sKz0xCiAgICAgICAgd2hpbGUgc3RyKG51KVstMV0gaW4gbm90cDoKICAgICAgICAgICAgbnUtPTEKICAgIG5pbi5hcHBlbmQoW25sLG51XSkKICAgIGlmIG51Pm5sOiAgICAgI2lnbm9ydWplbXkgcHJ6eXBhZGtpIHR5cHUgMjE0NzQ4MzY0NCBkbyAyMTQ3NDgzNjQ2CiAgICAgICAgaWYgbnU+bnV4OiBudXg9bnUgIAoKcHRhYj1ieXRlYXJyYXkoW0ZhbHNlXSoobnV4KzEpKSAjemVybyBkb215c2xuaWUuYWxibyBucC5ieXRlYXJyYXkoWzFdICogMTAwMAojIHByaW50KHN5cy5nZXRzaXplb2YocHRhYikpCgpmb3IgaSBpbiByYW5nZSgyLCBudXgrMSk6ICMgZ2VuZXJ1amVteSB0YWJsaWNlIHJheiBibyBpIHRhayBqZXN0IHphd3N6ZSBvZCAyCiAgICBpZiBub3QgcHRhYltpXToKICAgICAgICBmb3IgaiBpbiByYW5nZShpKmksIG51eCsxLCBpKTogICAgICAgICAgIAogICAgICAgICAgICBwdGFiW2pdPVRydWUgICAgICAgICAgIAogICAgICAgICAgICAKZm9yIGl0IGluIHJhbmdlKG50KToKICAgIG5sLG51ID0gbmluW2l0XQogICAgaWYgbnU+bmw6IAogICAgICAgIGZvciBqIGluIHJhbmdlKG5sLG51KzEpOgogICAgICAgICAgICBpZiBub3QgcHRhYltqXTogc3lzLnN0ZG91dC53cml0ZShzdHIoaikrJ1xuJykgCiAgICAgICAgICAgICNpZiBub3QgcHRhYltqXTogcHJpbnQoaikK