#include #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 one; int can = -1; while(n>1){ one.PB(n%2); if (n%2 && can==-1){ can = one.size() - 1; } n /= 2; } int m = one.size(); if (can != -1){ swap(one[can], one[m-1]); } FORi(i,0,m){ n *= 2; n += one[m-i-1]; } return n; } int main() { int n; cin >> n; vector v(n); FORi(i,0,n){ cin >> v[i]; v[i] = set_max(v[i]); cout << v[i] << ' '; } return 0; }