description: You are given two integers n and m. Find the \operatorname{MEX} of the sequence n ⊕ 0, n ⊕ 1, …, n ⊕ m. Here, ⊕ is the [bitwise XOR operator](https://en.wikipedia.org/wiki/Bitwise_operation#XOR).
  
  \operatorname{MEX} of the sequence of non-negative integers is the smallest non-negative integer that doesn't appear in this sequence. For example, \operatorname{MEX}(0, 1, 2, 4) = 3, and \operatorname{MEX}(1, 2021) = 0. 
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 30 000) — the number of test cases.
  
  The first and only line of each test case contains two integers n and m (0 ≤ n, m ≤ 10^9).
  
  Output
  
  For each test case, print a single integer — the answer to the problem.
  
  Example
  
  Input
  
  
  5
  3 5
  4 6
  3 2
  69 696
  123456 654321
  
  
  Output
  
  
  4
  3
  0
  640
  530866
  
  Note
  
  In the first test case, the sequence is 3 ⊕ 0, 3 ⊕ 1, 3 ⊕ 2, 3 ⊕ 3, 3 ⊕ 4, 3 ⊕ 5, or 3, 2, 1, 0, 7, 6. The smallest non-negative integer which isn't present in the sequence i. e. the \operatorname{MEX} of the sequence is 4.
  
  In the second test case, the sequence is 4 ⊕ 0, 4 ⊕ 1, 4 ⊕ 2, 4 ⊕ 3, 4 ⊕ 4, 4 ⊕ 5, 4 ⊕ 6, or 4, 5, 6, 7, 0, 1, 2. The smallest non-negative integer which isn't present in the sequence i. e. the \operatorname{MEX} of the sequence is 3.
  
  In the third test case, the sequence is 3 ⊕ 0, 3 ⊕ 1, 3 ⊕ 2, or 3, 2, 1. The smallest non-negative integer which isn't present in the sequence i. e. the \operatorname{MEX} of the sequence is 0.
solution: #THIS CODE IS MADE BY "harshest2020"
  from sys import *
  ws=lambda:map(int,stdin.readline().strip().split())
  li=lambda:list(map(int,stdin.readline().strip().split()))
  mod=1000000007
  def ncr(n, r, p): 
      num = den = 1 
      for i in range(r): 
          num = (num * (n - i)) % p 
          den = (den * (i + 1)) % p 
      return (num * pow(den, p - 2, p)) % p
   
  def gcd(a,b):
      if (b == 0): 
           return a 
      return gcd(b, a%b)
  def prod(l):
      ans=1
      for i in range(len(l)):
          ans=ans*l[i]
      return ans
  def sortindex(l,a):
      c=[]
      if(a==-1):
          rev=True
      else:
          rev=False
      for i in range(len(l)):
          c.append([l[i],i])
      x=sorted(c,reverse=rev)
      print(x)
      c=[]
      for i in range(len(l)):
          c.append(x[i][1])
      return c
  #CODE STARTS HERE
  for _ in range(int(input())):
      n,m=ws()
      if(n>m):
          print(0)
      else:
          t1=bin(m+1)
          t1=t1[2:]
          t2=bin(n)
          t2=t2[2:]
          t8=len(t1)-len(t2)
          t3='0'*(t8)
          t3+=t2
          t4=t1[:t8]
          # print(t1,t3,t4)
          flag=0
          for i in range(t8,len(t1)):
              if(flag==0):
                  if(t1[i]=='1'):
                      if(t3[i]=='1'):
                          t4+='0'
                      else:
                          t4+='1'
                  else:
                      if(t3[i]=='1'):
                          t4+='0'
                          flag=1
                      else:
                          t4+='0'
              else:
                  t4+='0'
          # print(t4)
          # print(bin(640)[2:])
          print(int(t4,2))
  
  
  
  
  
  