#include using namespace std; #define ll long long #define vi vector #define pb push_back #define fast ios::sync_with_stdio(false); cin.tie(nullptr); vi seive(int n){ vector prime(n+1, true); prime[0] = prime[1] = false; for(int i=2; i*i<=n; i++){ if(prime[i]){ for(int j=i*i; j<=n; j+=i){ prime[j] = false; } } } vi res; for(int i=2; i<=n; i++){ if(prime[i]) res.pb(i); } return res; } vi primes = seive(1e9); // Correct factorisation vi factorisation(int n, const vi &primes){ vi factors; for(int p : primes){ if(1LL * p * p > n) break; while(n % p == 0){ factors.pb(p); n /= p; } } if(n > 1) factors.pb(n); return factors; } void solve(){ int n, k; cin >> n >> k; if(n == k){ cout << -1 << "\n"; return; } for(int i = n; i >= 1; i--){ vi arr = factorisation(i, primes); if(arr.back() > k){ cout << i << "\n"; return; } } } int main(){ fast int t = 1; cin >> t; while(t--){ solve(); } return 0; }