#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
inline int get_int()
{
int n=0;
char c=0;
while(c<33)
c=getchar_unlocked();
while(c>='0'&&c<='9')
{
n=(n<<3)+(n<<1)+(c-'0');
c=getchar_unlocked();
}
return n;
}
int main(int argc, char const *argv[])
{
int t,n,a,b,number,totalones,i,quint;
scanf("%d", &t);
while(t--)
{
int chambernoa,chambernob, oneina=0,oneinb=0,logproblem1,logproblem2;
number=0;
n=get_int();
a=get_int();
b=get_int();
/* if (a==0)
chambernoa=1;
else
chambernoa=log2(a)+1;
if (b==0)
chambernob=1;
else
chambernob=log2(b)+1;
logproblem1=log2(pow(2,chambernoa)-a);
logproblem2=log2(pow(2,chambernob)-b);
// if (totalones>0)
// number=pow(2,--n);
// for (i=1;i<totalones;i++)
// number+=pow(2,--n);
// printf("%d\n", number);
*/
while(a)
{
oneina++;
a=a&(a-1);
}
while(b)
{
b=b&(b-1);
oneinb++;
}
if ((oneinb+oneina)>n)
totalones=(2*n)-oneina-oneinb;
else
totalones=oneina+oneinb;
// int totalzeroes=n-totalones;
// unsigned int temp;
// temp=1<<(totalones);
// temp--;
// temp=temp<<(totalzeroes);
// printf("%u\n", temp);
if (totalones>0)
number=pow(2,--n);
for (i=1;i<totalones;i++)
number+=pow(2,--n);
printf("%d\n", number);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8bWF0aC5oPgoKCmlubGluZSBpbnQgZ2V0X2ludCgpCnsKICAgIGludCBuPTA7CiAgICBjaGFyIGM9MDsKICAgIHdoaWxlKGM8MzMpCiAgICAgICAgYz1nZXRjaGFyX3VubG9ja2VkKCk7CiAgICB3aGlsZShjPj0nMCcmJmM8PSc5JykKICAgIHsKICAgICAgICBuPShuPDwzKSsobjw8MSkrKGMtJzAnKTsKICAgICAgICBjPWdldGNoYXJfdW5sb2NrZWQoKTsKICAgIH0KICAgIHJldHVybiBuOwp9CmludCBtYWluKGludCBhcmdjLCBjaGFyIGNvbnN0ICphcmd2W10pCnsKICAgIGludCB0LG4sYSxiLG51bWJlcix0b3RhbG9uZXMsaSxxdWludDsKICAgIHNjYW5mKCIlZCIsICZ0KTsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgIAlpbnQgY2hhbWJlcm5vYSxjaGFtYmVybm9iLCBvbmVpbmE9MCxvbmVpbmI9MCxsb2dwcm9ibGVtMSxsb2dwcm9ibGVtMjsKICAgIAogICAgICAgIG51bWJlcj0wOwogICAgICAgIG49Z2V0X2ludCgpOwogICAgICAgIGE9Z2V0X2ludCgpOwogICAgICAgIGI9Z2V0X2ludCgpOwogICAgICAgLyogaWYgKGE9PTApCiAgICAgICAgICAgIGNoYW1iZXJub2E9MTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGNoYW1iZXJub2E9bG9nMihhKSsxOwogICAgICAgIGlmIChiPT0wKQogICAgICAgICAgICBjaGFtYmVybm9iPTE7CiAgICAgICAgZWxzZQogICAgICAgICAgICBjaGFtYmVybm9iPWxvZzIoYikrMTsKICAgICAgICBsb2dwcm9ibGVtMT1sb2cyKHBvdygyLGNoYW1iZXJub2EpLWEpOwogICAgICAgIGxvZ3Byb2JsZW0yPWxvZzIocG93KDIsY2hhbWJlcm5vYiktYik7CiAgICAgICAgLy8gaWYgKHRvdGFsb25lcz4wKQogICAgICAgIC8vICAgICBudW1iZXI9cG93KDIsLS1uKTsKICAgICAgICAvLyBmb3IgKGk9MTtpPHRvdGFsb25lcztpKyspCiAgICAgICAgLy8gICAgIG51bWJlcis9cG93KDIsLS1uKTsKICAgICAgICAvLyBwcmludGYoIiVkXG4iLCBudW1iZXIpOwogICAgICAgICovCiAgICAgICAgd2hpbGUoYSkKCQl7CgkJCW9uZWluYSsrOwoJCQlhPWEmKGEtMSk7CgkJfQoJCXdoaWxlKGIpCgkJewoJCQliPWImKGItMSk7CgkJCW9uZWluYisrOwoJCX0KCQlpZiAoKG9uZWluYitvbmVpbmEpPm4pCiAgICAgICAgICAgIHRvdGFsb25lcz0oMipuKS1vbmVpbmEtb25laW5iOwogICAgICAgIGVsc2UKICAgICAgICAgICAgdG90YWxvbmVzPW9uZWluYStvbmVpbmI7CgkJLy8gaW50IHRvdGFsemVyb2VzPW4tdG90YWxvbmVzOwogICAgICAgIAogIC8vICAgICAgdW5zaWduZWQgaW50IHRlbXA7CiAgLy8gICAgICB0ZW1wPTE8PCh0b3RhbG9uZXMpOwogIC8vICAgICAgdGVtcC0tOwogIC8vICAgICAgdGVtcD10ZW1wPDwodG90YWx6ZXJvZXMpOwogIC8vICAgICAgcHJpbnRmKCIldVxuIiwgdGVtcCk7CiAgCQlpZiAodG90YWxvbmVzPjApCiAgICAgICAgICAgICBudW1iZXI9cG93KDIsLS1uKTsKICAgICAgICAgZm9yIChpPTE7aTx0b3RhbG9uZXM7aSsrKQogICAgICAgICAgICAgbnVtYmVyKz1wb3coMiwtLW4pOwogICAgICAgICBwcmludGYoIiVkXG4iLCBudW1iZXIpOwogICAgICAgIAogICAgfQogICAgcmV0dXJuIDA7Cn0=