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

using namespace std;

#define MOD 666013

int main(){

int n, x, T;
char b[35];


scanf("%d", &T);

for(int i = 1; i <= T; i++){
    scanf("%d", &n);
int sets = 0;
    memset(b, 0, sizeof(char) * 35);

    int m = n;
    int k = -1;

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

    int len = strlen(b);

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



    if(sets == 1 || (sets == 2 && b[1] == '1')){
        printf("%d ", n);
        continue;
    }

    int e, ch;

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

    int dec = 0;

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

return 0;
}