#include #define D(...) fprintf(stderr,__VA_ARGS__) #define int long long #define LL long long #define MP make_pair #define PB push_back #define fi first #define se second #define ALL(x) (x).begin(),(x).end() #define SZ(x) ((int)(x).size()) #define rep(i,a,b) for(int i=(a);i<=(b);++i) #define per(i,a,b) for(int i=(a);i>=(b);--i) using namespace std; typedef pairPII;typedef vectorVI;typedef vectorVII; templatevoid rd(T&x){int f=0,c;while(!isdigit(c=getchar()))f^=!(c^45);x=(c&15);while(isdigit(c=getchar()))x=x*10+(c&15);if(f)x=-x;} templatevoid pt(T x,int c=-1){if(x<0)putchar('-'),x=-x;if(x>9)pt(x/10);putchar(x%10+48);if(c!=-1)putchar(c);} int T,n,f[1005][1005]; void pre(){ rep(i,1,1000){ rep(j,1,1000){ f[i][j]=max(f[i-1][j],f[i][j-1])+(__gcd(i,j)==1); } } } signed main(){ pre(); rd(T); while(T--){ int a,b;rd(a),rd(b); pt(f[a][b],'\n'); } return 0; }