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.
#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))





