import sys import math def is_bad(x: int, K: int) -> bool: # Trả về True nếu tồn tại a,b với 1<=a,b<=K và a*b=x (x "xấu"); ngược lại False (x "tốt") if x <= K: return True # x = 1 * x, cả hai đều <= K low = (x + K - 1) // K # ceil(x / K) if low > K: return False # không có ước d nào trong [low..K] => không thể có a,b<=K r = math.isqrt(x) if low > r: return False for d in range(low, r + 1): if x % d == 0: v = x // d if d <= K and v <= K: return True return False def solve_case(N: int, K: int) -> int: if K >= N: return -1 if N > K * K: return N for x in range(N, K, -1): if not is_bad(x, K): return x return -1 data = sys.stdin.read().strip().split() if data: it = iter(data) T = int(next(it)) out = [] for _ in range(T): N = int(next(it)); K = int(next(it)) out.append(str(solve_case(N, K))) sys.stdout.write("\n".join(out))