#include <bits/stdc++.h>

#define PAUSE system("pause")
#define LLI long long int
#define LD long double
#define PB push_back
#define PF push_front
#define MP make_pair
#define FORi(i, a, b) for(int i = a; i < b ; ++i)
#define FORd(i, a, b) for(int i = a; i > b ; --i)

using namespace std;

LLI set_max(LLI n){
	vector<bool> one;
	int first_one = -1, last_zero=-1;
	while(n>1){
		one.PB(n%2);
		if (n%2 && first_one==-1){
			first_one = one.size() - 1;
		}
		if (n%2==0){
			last_zero = one.size() - 1;
		}
		n /= 2;
	}
	int m = one.size();
	if (first_one != -1 && last_zero != -1){
		swap(one[first_one], one[last_zero]);
	}
	FORi(i,0,m){
		n *= 2;
		n += one[m-i-1];
	}
	return n;
}

int main() {
	int n;
	cin >> n;
	vector<LLI> v(n);
	FORi(i,0,n){
		cin >> v[i];
		v[i] = set_max(v[i]);
		cout << v[i] << ' ';
	}
	return 0;
}