#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void zhuanhaun(char *Arr,int n)
{
    if(n>1)
    {
        zhuanhaun((Arr+1),n/2);
        *Arr=n%2+'0';
    }
    else
    {*Arr=n%2+'0';}
}
void panduan(int m)
{
    int cnt1 = 0, cnt0 = 0;
    char Arr[100] = {0}; // 初始化数组
    int j;
    // 处理二进制转换
    zhuanhaun(Arr,m);
    int len = strlen(Arr); // 二进制位数
    // 计算长度并统计0和1的数量
    // puts(Arr);
    // printf("\n");
    for (j = 0; j < len; j++)
    {
        if (Arr[j] == '0')
            cnt0++;
        else if(Arr[j]=='1')
            cnt1++;
    }
      if(cnt0%2==0&&cnt1%2==0)
    {
        printf("10 ");
    }
    else if(cnt0%2==0&&cnt1%2!=0)
    {
        printf("0 ");
    }
    else if(cnt1%2==0&&cnt0%2!=0)
    {
        printf("1 ");
    }
    else
    {
        printf("100 ");
    }
}


int main()
{
    int n,m;
    int i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&m);
        panduan(m);
    }
    return 0;
}
//之前用循环做,莫名其妙就错了。。。