import java.io.*; import java.math.BigDecimal; import java.util.*; public class Main { public static void main(String[] args) { PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); FastScanner in=new FastScanner(); int dp[][]=new int[1001][1001]; for(int i=0;i<1001;i++) Arrays.fill(dp[i],-1); dp[1][1]=1; int T=in.nextInt(); while (T-->0){ int a=in.nextInt(); int b=in.nextInt(); out.println(getMax(a,b,dp)); } out.flush(); } public static int getMax(int a,int b,int dp[][]){ if(dp[a][b]!=-1) return dp[a][b]; if(a==0||b==0) return 0; int left=0; if(getGcd(a,b)==1) left++; dp[a][b] = Math.max(getMax(a-1,b,dp)+left,getMax(a,(b-1),dp)+left); return dp[a][b]; } public static int getGcd(int x,int y){ if(x%y==0) return y; return getGcd(y,x%y); } static class FastScanner { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st=new StringTokenizer(""); String next() { while (!st.hasMoreTokens()) try { st=new StringTokenizer(br.readLine()); } catch (IOException e) { e.printStackTrace(); } return st.nextToken(); } int nextInt() { return Integer.parseInt(next()); } int[] readArray(int n) { int[] a=new int[n]; for (int i=0; i