//Awwawa! Dis cold yis ratten buy tEMMIE! #include #define ll long long #define maxn 1005 /*rem*/ #define mod 998244353 #define db double #define vi vector #define pb push_back #define mp make_pair #define pi pair #define fi first #define se second template bool chkmax(T &x,T y){return x bool chkmin(T &x,T y){return x>y?x=y,true:false;} using namespace std; ll ksm(ll a, ll b) { if (!b) return 1; ll ns = ksm(a, b >> 1); ns = ns * ns % mod; if (b & 1) ns = ns * a % mod; return ns; } int pr[maxn][maxn]; int dp[maxn][maxn]; int main() { for (int i = 2; i < maxn; i++) for (int j = i; j < maxn; j += i) for (int k = i; k < maxn; k += i) pr[j][k] = 1; for (int i = 1; i < maxn; i++) for (int j = 1; j < maxn; j++) { if (i == 1 && j == 1) dp[i][j] = 1; else { if (i >= 2) chkmax(dp[i][j], dp[i - 1][j]); if (j >= 2) chkmax(dp[i][j], dp[i][j - 1]); if (pr[i][j] == 0) dp[i][j]++; } } int t; cin >> t; while (t--) { int a, b; scanf("%d%d", &a, &b); printf("%d\n", dp[a][b]); } return 0; }