#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<vector>
#include<set>
#include<map>

using namespace std;

#define x first
#define y second
#define NMAX 1005

int n, v[NMAX];

int main (){
    
    scanf("%d",&n);
    for(int i = 1; i <= n; i++){
        scanf("%d",&v[i]);
        int worst = -1, best = 0;
        for(int j = 0; j < 31; j++)
            if(v[i] & (1 << j)){
                best = j;
                if(worst == -1)
                    worst = j;
            }
            //printf("%d\n", (v[i] & (1 << 30)));
        int ok = 1;
        for(int j = best; j >= worst; j--){
            if(!((1 << j) & v[i])){
                ok = 0;
                printf("%d ", v[i] - (1 << worst) + (1 << j));
                break;
            }
        }
        if(ok)
            printf("%d ", v[i]);
    }
    printf("\n");    
    return 0;
}