#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll bits(ll n)
{
ll cnt = 0;
while(n > 0)
{
cnt++;
n /= 2;
}
return cnt;
}
ll setBits(ll n)
{
ll cnt = 0;
while(n > 0)
{
cnt++;
n = n&(n-1);
}
return cnt;
}
ll Maximum_Number(ll a, ll b)
{
ll sa = setBits(a);
ll sb = setBits(b);
ll ba = bits(a);
ll bb = bits(b);
ll ansbits = max(ba, bb);
if(sa + sb >= ansbits)
{
ll ans = 0;
ll x = 1;
while(ansbits--)
{
ans += x;
x *= 2;
}
return ans;
}
ll x1 = 1, x2 = 1;
ll ans = 0;
for(int i=1; i<ba; i++) x1 *= 2;
for(int i=1; i<bb; i++) x2 *= 2;
while(sa--)
{
ans += x1;
x1 /= 2;
}
while(sb--)
{
ans += x2;
x2 /= 2;
}
return ans;
}
int main() {
int t, a, b;
cin>>t;
while(t--)
{
cin>>a>>b;
cout<<Maximum_Number(a, b)<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKbGwgYml0cyhsbCBuKQp7CglsbCBjbnQgPSAwOwoJd2hpbGUobiA+IDApCgl7CgkJY250Kys7CgkJbiAvPSAyOwoJfQoJcmV0dXJuIGNudDsKfQoKbGwgc2V0Qml0cyhsbCBuKQp7CglsbCBjbnQgPSAwOwoJd2hpbGUobiA+IDApCgl7CgkJY250Kys7CgkJbiA9IG4mKG4tMSk7Cgl9CglyZXR1cm4gY250Owp9CgpsbCBNYXhpbXVtX051bWJlcihsbCBhLCBsbCBiKQp7CglsbCBzYSA9IHNldEJpdHMoYSk7CglsbCBzYiA9IHNldEJpdHMoYik7CglsbCBiYSA9IGJpdHMoYSk7CglsbCBiYiA9IGJpdHMoYik7CglsbCBhbnNiaXRzID0gbWF4KGJhLCBiYik7CglpZihzYSArIHNiID49IGFuc2JpdHMpCgl7CgkJbGwgYW5zID0gMDsKCQlsbCB4ID0gMTsKCQl3aGlsZShhbnNiaXRzLS0pCgkJewoJCQlhbnMgKz0geDsKCQkJeCAqPSAyOwoJCX0KCQlyZXR1cm4gYW5zOwoJfQoJbGwgeDEgPSAxLCB4MiA9IDE7CglsbCBhbnMgPSAwOwoJZm9yKGludCBpPTE7IGk8YmE7IGkrKykgeDEgKj0gMjsKCWZvcihpbnQgaT0xOyBpPGJiOyBpKyspIHgyICo9IDI7Cgl3aGlsZShzYS0tKQoJewoJCWFucyArPSB4MTsKCQl4MSAvPSAyOwoJfQoJd2hpbGUoc2ItLSkKCXsKCQlhbnMgKz0geDI7CgkJeDIgLz0gMjsKCX0KCXJldHVybiBhbnM7Cn0KCmludCBtYWluKCkgewoJaW50IHQsIGEsIGI7CgljaW4+PnQ7Cgl3aGlsZSh0LS0pCgl7CgkJY2luPj5hPj5iOwoJCWNvdXQ8PE1heGltdW1fTnVtYmVyKGEsIGIpPDwiXG4iOwoJfQoJcmV0dXJuIDA7Cn0=