#include<bits/stdc++.h>
using namespace std;
vector<int> ans(1000006, 0), temp(1000006, 0);
void preprocess(){
ans[1] = temp[1] = 1;
ans[2] = 2, temp[2] = 1;
for(int i=3; i<1000006; ++i){
if(i&1){
ans[i] = temp[i/2] * 2;
temp[i] = ans[i/2 + 1] * 2 - 1;
}
else{
ans[i] = ans[i/2] * 2;
temp[i] = temp[i/2] * 2 - 1;
}
}
}
int main(){
#ifndef ONLINE_JUDGE
freopen("inp6.txt", "r", stdin);
freopen("out6.txt", "w", stdout);
#endif // ONLINE_JUDGE
preprocess();
int test;
scanf("%d", &test);
while(test--){
int n;
scanf("%d", &n);
printf("%d\n", ans[n]);
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD4gYW5zKDEwMDAwMDYsIDApLCB0ZW1wKDEwMDAwMDYsIDApOwp2b2lkIHByZXByb2Nlc3MoKXsKICAgIGFuc1sxXSA9IHRlbXBbMV0gPSAxOwogICAgYW5zWzJdID0gMiwgdGVtcFsyXSA9IDE7CiAgICBmb3IoaW50IGk9MzsgaTwxMDAwMDA2OyArK2kpewogICAgICAgIGlmKGkmMSl7CiAgICAgICAgICAgIGFuc1tpXSA9IHRlbXBbaS8yXSAqIDI7CiAgICAgICAgICAgIHRlbXBbaV0gPSBhbnNbaS8yICsgMV0gKiAyIC0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgYW5zW2ldID0gYW5zW2kvMl0gKiAyOwogICAgICAgICAgICB0ZW1wW2ldID0gdGVtcFtpLzJdICogMiAtIDE7CiAgICAgICAgfQogICAgfQp9CmludCBtYWluKCl7CiAgICAjaWZuZGVmIE9OTElORV9KVURHRQogICAgICAgIGZyZW9wZW4oImlucDYudHh0IiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbigib3V0Ni50eHQiLCAidyIsIHN0ZG91dCk7CiAgICAjZW5kaWYgLy8gT05MSU5FX0pVREdFCiAgICBwcmVwcm9jZXNzKCk7CiAgICBpbnQgdGVzdDsKICAgIHNjYW5mKCIlZCIsICZ0ZXN0KTsKICAgIHdoaWxlKHRlc3QtLSl7CiAgICAgICAgaW50IG47CiAgICAgICAgc2NhbmYoIiVkIiwgJm4pOwogICAgICAgIHByaW50ZigiJWRcbiIsIGFuc1tuXSk7CiAgICAgICAgfQp9CiA=