#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define testCase ll t; cin >> t; while (t--)
#define Iread ll n; cin >> n; for (ll i = 0; i < n; i++)
#define loop(n) for (ll i = 0; i < n; i++)
#define dbloop(n, m) for (ll i = 0; i < n; ++i) for (ll j = 0; j < m; ++j)
#define dloop(n) for (ll i = 0, j = n - 1; i < j; ++i, --j)
#define arr(n) ll arr[n]
#define vi vector<ll>
#define ain(arr, n) for (ll i = 0; i < n; ++i) {cin >> arr[i]; }
#define vin(v) for (auto& i : v) cin >> i;
#define prnt(n) for (const auto& i : n) { cout << i << " "; } cout << "\n";
#define endl "\n"
vi prime;
void sv() {
vi primes(102,1);
primes[0] = primes[1] = 0;
for (ll i = 2; i * i <= 101; i++) {
if (primes[i]) {
for (ll j = i * i; j <= 101; j+=i) {
primes[j] = 0;
}
}
}
for (ll i = 2; i <= 101; i++) {
if(primes[i]) prime.push_back(i);
}
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
sv();
//start
testCase {
//prnt(prime);
ll x,y; cin >> x >> y;
// if (x == 1) {
// cout << "-1" << endl;
// continue;
// }
ll ans = -1;
// for (ll i = 1; i <= 100; i++) {
// if (i % x != 0 && i % y != 0) ans = i;
// }
for (ll i = 0; i < prime.size(); i++) {
if (prime[i] % x != 0 && prime[i] % y != 0) {
ans = prime[i];
break;
}
}
(ans == -1) ? cout << "-1\n" : cout << ans << endl;
}
}