#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;
}