#include <iostream> #include <vector> using namespace std; int count(long n) { int num = 0; if (n) do num++; while (n &= n - 1); return num; } int main() { int n,x; vector<int> v; cin>>n; for(int i=1;i<=n;i++) { cin>>x; if(count(x)!=1 && count(x+1)!=1) { while(x) { v.push_back(x%2); x=x/2; } int ok=0,poz1,poz2; for(int i=0;i<v.size() && ok==0;i++) if(v[i]==1) {poz1=i;ok=1;} ok=0; for(int i=v.size()-1;i>=0&& ok==0;i--) if(v[i]==0) {poz2=i;ok=1;} if(poz1<poz2) swap(v[poz1],v[poz2]); int p=1;x=0; for(int i=0;i<v.size();i++) { x=x+p*v[i];p*=2; } } v.clear(); cout<<x<<" "; } return 0; }