def getPrimes(last: int, first: int = 1): if last < first: last, first = first, last isPrime = [True] * (last + 1) isPrime[0] = isPrime[1] = False for i in range(2, int(last ** 0.5 + 1)): if isPrime[i]: for j in range(i ** 2, last + 1, i): isPrime[j] = False return [i for i in range(first, last + 1) if isPrime[i]] primes=set(getPrimes(int((10**9)**0.5)+1)) T=int(input()) for _ in range(T): N,K=map(int,input().split()) if K==N: print(-1) else: ans=0 for i in range(N,K,-1): if i in primes: ans=max(ans,i*(N//i)) print(ans)