#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
void solve()
{
unsigned long long n, x, N; scanf("%lld%lld", & n, & x); N = n;
if(n == x){
printf("%lld\n", n);
return;
}
bool flag = 0; int p = - 1, i = 0;
while(n || x){
if(! (n & 1ll) && (x & 1ll)){
puts("-1");
return;
}else if((n & 1ll) && (x & 1ll)){
flag = 1;
}else if((n & 1ll) && ! (x & 1ll)){
if(flag){
puts("-1");
return;
}else{
p = i;
}
}
n >>= 1ll, x >>= 1ll, i ++;
}
printf("%lld\n", (N & (~ ((1ll << (p + 1ll)) - 1ll))) + (1ll << (p + 1ll)));
}
int main()
{
int t; scanf("%d", & t);
while(t --) solve();
return 0;
}