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-218), N+1)): ok = True for d in divisors(x): a = d b = N // d if a <= K and b <= K: ok = False break if ok: return x return -1 T = int(input()) for _ in range(T): ans = solve() print(ans)