def divisors(n: int) -> list[int]: """n の約数を求める""" s = set() p = 1 while p * p <= n: if n % p == 0: s.add(p) s.add(n // p) p += 1 return sorted(s) def solve(): N, K = map(int, input().split()) for x in reversed(range(max(1, N-281), N+1)): if x <= K: break ds = divisors(x) ok = True for d in ds: a = d b = x // d if a <= K and b <= K: ok = False break if ok: return x elif len(ds) == 2: # priem break return -1 T = int(input()) for _ in range(T): ans = solve() print(ans)