#include <bits/stdc++.h>

using namespace std;

long long sol[50], PW[50], pmax, leftP, rightP, p;

int main()
{
    PW[0] = 1;
    for(int i = 1; i <= 31; i ++)
    {
        PW[i] = PW[i - 1] * 2;
    }
    int N; cin >> N;
    for(int i = 1; i <= N; i ++)
    {
        memset(sol, 0, sizeof(sol));
        pmax = 0;
        leftP = 0; rightP = 0;
        long long x; cin >> x;
        long long x2 = x;
        if(x == 0)
        {
            cout << x << ' ';
            continue;
        }
        while(x2 > 0)
        {
            for(p = 31; p >= 0; p --)
            {
                if(PW[p] <= x2)
                    break;
            }
            sol[p] = 1;
            x2 -= PW[p];
            pmax = max(pmax, p);
        }
        for(int i = pmax; i >= 0; i --)
        {
            if(leftP == 0 && sol[i] == 0)
            {
                leftP = i;
            }
            if(sol[i] == 1)
                rightP = i;
        }
        x2 = 0;
        for(int i = 0; i <= pmax; i ++)
        {
            if(rightP != i)
            {
                x2 += PW[i] * sol[i];
            }
            if(leftP == i)
            {
                x2 += PW[i];
            }
        }
        if(x2 > x)
        {
            cout << x2 << ' ';
        }
        else
        {
            cout << x << ' ';
        }
    }
    return 0;
}