#include <bits/stdc++.h>
using namespace std;
int ans[40];
void compute(int val, int &size){
size = 0;
		while(val >= 1){
			ans[size] = val % 2;
			val/=2;
			size++;
		}
		for(int i=0;i<size/2;i++)
			swap(ans[i], ans[size-i-1]);
}

int main(){
		//ifstream cin("input.in");
		int n;
		cin >> n;
		for(int i=0;i<n;i++){
				memset(ans, 0, sizeof(ans));
				int val,size=0;
				cin >> val;
				compute(val, size);
				int low;
				if(size > 1){
						for(low = size-1; low>=0; low--){
							if(ans[low] == 1){
								break;
							}
						}
						int hight;
						for(hight = 0; hight < size; hight++){
							if(ans[hight] == 0)
								break;
						}
						if(low > hight)
						swap(ans[low], ans[hight]);
				}
				int fin = 0;
				for(int j=0;j<size;j++){
					fin += ans[j] * pow(2,size-j-1);
				}
				cout << fin << ' ';
		}
		return(0);
}