#include <cstdio>
#include <string.h>
#include <algorithm>

using namespace std;

#define MOD 666013

int main(){

long long n, x, T;
char b[45];


scanf("%d", &T);

for(long long i = 1; i <= T; i++){

    scanf("%lld", &n);
    long long sets = 0, zeros = 0;
    memset(b, 0, sizeof(char) * 35);

    long long m = n;
    long long k = -1;

    while(m){
        if(m % 2){
            b[++k] = 1 + '0';
            sets++;
        }else{
            b[++k] = 0 + '0';
            zeros++;
        }
        m >>= 1;
    }b[++k] = '\0';

    long long len = strlen(b);

    for(long long i = 0; i <= (len - 1)/ 2; i++){
        swap(b[i], b[len-i-1]);
    }

    if(sets == 1 || (sets == 2 && b[1] == '1') || !zeros || (zeros == 1 && b[len-1] == '0')){
        printf("%lld ", n);
        continue;
    }

    long long e, ch;

    for(long long i = 0; i < len;i++){
        if(b[i] == '0'){
            e = i;
            break;
        }
    }
    for(long long i = len - 1; i > e; i--){
        if(b[i] == '1'){
            ch = i;
            break;
        }
    }
    swap(b[e], b[ch]);

    long long dec = 0;

    for(long long i = 0; i < len; i++){
        dec <<= 1;
        if(b[i] == '1'){
            dec += 1;
        }
    }
    printf("%lld ", dec);
}

return 0;
}