#include <bits/stdc++.h>
#define mp make_pair
using namespace std ;
const int NR = 100005 ;
vector < int > st ;
//ifstream in ("date.in") ;
int main () {
    int64_t cnt , n , x , i , sol , maxim , minim ;
    cin >> n ;
    while ( n -- )  {
    cin >> x ;
        for ( i = 0 ; ( 1 << i ) <= x ; ++ i )  {
            if ( ( 1 << i ) & x )   st.push_back( i ) ;
        }
        if ( st.size() == 1 || st.empty() )  { cout << x << ' ' ; continue ; }
        bool viz [ 50 ] = {0} ;
        for ( i = 0 ; i < st.size() - 1 ; ++ i )
           viz [ st [ i ] ] = 1 ;
        for ( i = 0 ; i < st [ st.size() - 1 ] ; ++ i )
            if ( viz [ i ] )    minim = i , i = st [ st.size() - 1 ] ;
        for ( i =  st [ st.size() - 1 ] - 1 ; i >= 0 ; -- i )
            if ( !viz [ i ] )    maxim = i , i = 0 ;
       // cout << minim << ' ' << maxim << '\n' ;
        if ( minim < maxim )    x += ( 1 << maxim ) - ( 1 << minim ) ;
        cout << x << ' ' ;
        st.clear() ;
    }
}