#include <bits/stdc++.h>
using namespace std;
#define all(v) ((v).begin()), ((v).end())
#define pb push_back
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define MP make_pair
#define sz(x) ((int)((x).length()))
#define fi first
#define se second
#define rep(i,n) for(int i=0;i<n;i++)
#define clr(v,d) memset(v, d, sizeof(v))
#define print cout<<
const double EPS = 1e-12;
const double PI = acos(-1.0);
typedef long long ll;
const ll mod = ll(1e9 + 7);
string t_s(int x)
{
stringstream ss;
ss << x;
string y;
ss >> y;
return y;
}
/*vector<long long > prime(1e6,true);
void primenumber()
{
prime[0]=prime[1]=0;
for(ll i=2; i<=1e6; i++)
{
if(prime[i])
{
for(ll j=i*i; j<=1e6; j+=i)
prime[j]=false;
}
}
}*/
/*int cnt_ones(ll val)
{
int ret=0;
while(val>0)
{
ret++;
val=val&(val-1);
}
return ret;
}*/
/*int div(int n){
int c=0;
for(ll i=1;i*i<=n;i++){
if(n%i==0&&i*i!=n)c++;
if(n%i==0)c++;
}
return c;
}*/
//freopen("commandos.in", "r", stdin);
//freopen("output.txt", "w", stdout);
long long convertDecimalToBinary(long long n)
{
long long binaryNumber = 0;
int remainder, i = 1;
while (n!=0)
{
remainder = n%2;
n /= 2;
binaryNumber += (remainder?0:1)*i;
i *= 2;
}
return binaryNumber;
}
int main()
{
int t,test=0;
cin>>t;
while(t--)
{
ll a,b;
scanf("%lld %lld",&a,&b);
ll x=(a+b);
// cout<<"Case #"<<++test<<": ";
cout<<convertDecimalToBinary(x)<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgYWxsKHYpICAgICAgICAgICgodikuYmVnaW4oKSksICgodikuZW5kKCkpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmFzdCBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwojZGVmaW5lIE1QIG1ha2VfcGFpcgojZGVmaW5lIHN6KHgpICgoaW50KSgoeCkubGVuZ3RoKCkpKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgIHJlcChpLG4pICAgICAgZm9yKGludCBpPTA7aTxuO2krKykKI2RlZmluZSBjbHIodixkKQkJbWVtc2V0KHYsIGQsIHNpemVvZih2KSkKI2RlZmluZSBwcmludCAgIGNvdXQ8PApjb25zdCBkb3VibGUgRVBTID0gMWUtMTI7CmNvbnN0IGRvdWJsZSBQSSA9IGFjb3MoLTEuMCk7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBsbCBtb2QgPSBsbCgxZTkgKyA3KTsKc3RyaW5nIHRfcyhpbnQgeCkKewogICAgc3RyaW5nc3RyZWFtIHNzOwogICAgc3MgPDwgeDsKICAgIHN0cmluZyB5OwogICAgc3MgPj4geTsKICAgIHJldHVybiB5Owp9CgovKnZlY3Rvcjxsb25nIGxvbmcgPiBwcmltZSgxZTYsdHJ1ZSk7CnZvaWQgcHJpbWVudW1iZXIoKQp7CiAgICBwcmltZVswXT1wcmltZVsxXT0wOwogICAgZm9yKGxsIGk9MjsgaTw9MWU2OyBpKyspCiAgICB7CiAgICAgICAgaWYocHJpbWVbaV0pCiAgICAgICAgewogICAgICAgICAgICBmb3IobGwgaj1pKmk7IGo8PTFlNjsgais9aSkKICAgICAgICAgICAgICAgIHByaW1lW2pdPWZhbHNlOwogICAgICAgIH0KICAgIH0KfSovCi8qaW50IGNudF9vbmVzKGxsIHZhbCkKewogICAgaW50IHJldD0wOwogICAgd2hpbGUodmFsPjApCiAgICB7CiAgICAgICAgcmV0Kys7CiAgICAgICAgdmFsPXZhbCYodmFsLTEpOwogICAgfQogICAgcmV0dXJuIHJldDsKfSovCi8qaW50IGRpdihpbnQgbil7CmludCBjPTA7CmZvcihsbCBpPTE7aSppPD1uO2krKyl7CiAgICBpZihuJWk9PTAmJmkqaSE9biljKys7CiAgICBpZihuJWk9PTApYysrOwp9CiAgICByZXR1cm4gYzsKfSovCi8vZnJlb3BlbigiY29tbWFuZG9zLmluIiwgInIiLCBzdGRpbik7Ci8vZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKbG9uZyBsb25nIGNvbnZlcnREZWNpbWFsVG9CaW5hcnkobG9uZyBsb25nIG4pCnsKICAgIGxvbmcgbG9uZyBiaW5hcnlOdW1iZXIgPSAwOwogICAgaW50IHJlbWFpbmRlciwgaSA9IDE7CgogICAgd2hpbGUgKG4hPTApCiAgICB7CiAgICAgICAgcmVtYWluZGVyID0gbiUyOwogICAgICAgIG4gLz0gMjsKICAgICAgICBiaW5hcnlOdW1iZXIgKz0gKHJlbWFpbmRlcj8wOjEpKmk7CiAgICAgICAgaSAqPSAyOwogICAgfQogICAgcmV0dXJuIGJpbmFyeU51bWJlcjsKfQppbnQgbWFpbigpCnsKICAgIGludCB0LHRlc3Q9MDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBsbCBhLGI7CiAgICAgICAgc2NhbmYoIiVsbGQgJWxsZCIsJmEsJmIpOwogICAgICAgIGxsIHg9KGErYik7CiAgICAgICAgLy8gY291dDw8IkNhc2UgIyI8PCsrdGVzdDw8IjogIjsKICAgICAgIGNvdXQ8PGNvbnZlcnREZWNpbWFsVG9CaW5hcnkoeCk8PGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=