#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;
}
//之前用循环做,莫名其妙就错了。。。