def is_prime(x) if x == 1 then return false end if x == 2 then return true end a = 2 while a * a <= x if x % a == 0 then return false end a += 1 end return true end def is_good(x, k) a = 1 while a * a <= x && a <= k if x % a == 0 then b = x / a if b <= k then return false end end a += 1 end return true end t = gets.to_i t.times do n, k = gets.split.map(&:to_i) ans = -1 n.downto(1) do |x| if is_good(x, k) then ans = x break end if is_prime(x) then break end end puts ans end