#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define all(x) x.begin(), x.end()
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template <typename T> using o_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template <typename T, typename R> using o_map = tree<T, R, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
typedef long long ll;
#define inf 1e9
#define MOD 1000000007
#define vint vector<int>
#define vll vector<ll>
#define no cout << "NO" << endl;
ll logg(ll x ) {
ll ans = 0 ;
while ( x ) {
ans++ ;
x/=2 ;
}
return x ;
}
void solve() {
ll n , m ; cin >> n >> m ;
ll ans = 0 , sofar = 0 , plus = 0 , cumulative ;
set <ll > st ;
for (int bit = 0 ; bit <=63 ; bit ++ ) {
ll x = (1 << bit) ;
if ((x&n))st.insert(x) ;
}
vector < bool > v(64 , 0 ) ;
ll sofar2 = 0;
for (ll bit = 0 ; bit <=63 ; bit ++ ) {
ll x = (1ll<<bit );
if ((n&x) ) {
//cout << x <<" "<< n <<" hhh" << endl;
//cout << bit <<"bittt" << endl ;
if (sofar2+1<=m) {
for (int j = 0; j< bit ; j++) v[j]=1 ;
}
sofar2+= x ;
}
}
///for (auto e : v )cout << e <<" ";
//cout << endl ;
for (ll bit = 0 ; bit <= 63 ; bit ++ ) {
ll x = (1ll << bit );
if ( (n&x) ) {
sofar+= x ;
continue ;
}
if (v[bit]) {
plus+= x;
continue ;
}
ll distance = x - sofar ;
if (distance > m ) break ;
plus += x;
}
cout << n + plus << endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CnRlbXBsYXRlIDx0eXBlbmFtZSBUPiB1c2luZyBvX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFI+IHVzaW5nIG9fbWFwID0gdHJlZTxULCBSLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CgojZGVmaW5lIGluZiAxZTkKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIHZpbnQgdmVjdG9yPGludD4KI2RlZmluZSB2bGwgdmVjdG9yPGxsPgojZGVmaW5lIG5vIGNvdXQgPDwgIk5PIiA8PCBlbmRsOwpsbCBsb2dnKGxsIHggKSB7CiAgICBsbCBhbnMgPSAwIDsKICAgIHdoaWxlICggeCApIHsKICAgICAgICBhbnMrKyA7CiAgICAgICAgeC89MiA7CiAgICB9CiAgICByZXR1cm4geCAgOwp9CgoKdm9pZCBzb2x2ZSgpIHsKCiAgICBsbCBuICwgbSA7IGNpbiA+PiBuID4+IG0gOwogICAgbGwgYW5zID0gMCAsIHNvZmFyID0gMCAsIHBsdXMgPSAwICAsIGN1bXVsYXRpdmUgOwogICAgc2V0IDxsbCA+IHN0IDsKICAgIGZvciAoaW50IGJpdCA9IDAgOyBiaXQgPD02MyA7IGJpdCArKyApIHsKICAgICAgICBsbCB4ICA9ICgxIDw8IGJpdCkgOwogICAgICAgIGlmICgoeCZuKSlzdC5pbnNlcnQoeCkgOwogICAgfQogICAgdmVjdG9yIDwgYm9vbCA+IHYoNjQgLCAwICkgOwogICAgbGwgc29mYXIyID0gMDsKICAgIGZvciAobGwgYml0ID0gMCA7IGJpdCA8PTYzIDsgYml0ICsrICkgewogICAgICAgIGxsIHggPSAoMWxsPDxiaXQgKTsKICAgICAgICBpZiAoKG4meCkgKSB7CiAgICAgICAgICAgIC8vY291dCA8PCB4IDw8IiAiPDwgbiA8PCIgaGhoIiA8PCBlbmRsOwogICAgICAgICAgICAvL2NvdXQgPDwgYml0IDw8ImJpdHR0IiA8PCBlbmRsIDsKICAgICAgICAgICAgaWYgKHNvZmFyMisxPD1tKSB7CiAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgajwgYml0IDsgaisrKSAgIHZbal09MSA7CgogICAgICAgICAgICB9CiAgICAgICAgICAgIHNvZmFyMis9IHggOwogICAgICAgIH0KCiAgICB9CiAgICAvLy9mb3IgKGF1dG8gZSA6IHYgKWNvdXQgPDwgZSA8PCIgIjsKICAgIC8vY291dCA8PCBlbmRsIDsKICAgIGZvciAobGwgYml0ID0gMCA7IGJpdCA8PSA2MyA7IGJpdCArKyApIHsKICAgICAgICBsbCB4ID0gKDFsbCA8PCBiaXQgKTsKCiAgICAgICAgaWYgKCAobiZ4KSApIHsKICAgICAgICAgICAgc29mYXIrPSB4IDsKICAgICAgICAgICAgY29udGludWUgOwogICAgICAgIH0KICAgICAgICBpZiAodltiaXRdKSB7CiAgICAgICAgICAgIHBsdXMrPSB4OwogICAgICAgICAgICBjb250aW51ZSA7CiAgICAgICAgfQogICAgICAgIGxsIGRpc3RhbmNlID0geCAtIHNvZmFyIDsKCiAgICAgICAgaWYgKGRpc3RhbmNlID4gbSApIGJyZWFrIDsKICAgICAgICBwbHVzICs9ICB4OwogICAgfQogICAgY291dCA8PCBuICsgcGx1cyA8PCBlbmRsOwoKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCgogICAgaW50IHQgPSAxOwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=