#include #include long long toint(int *b, int sz){ long long ans = 0, d = 1; for(int i = 0; i < sz; ++i){ ans += b[i] * d; d <<= 1; } return ans; } void chaa(int *b, int sz){ int u = -1, z = -1; for(int i = 0; i < sz; ++i) if(b[i] == 1){ u = i; break; } for(int i = sz - 1; i >= 0; --i) if(b[i] == 0){ z = i; break; } if(u != -1 && z != -1){ b[z] = 1; b[u] = 0; } } int main(){ //freopen("file", "r", stdin); int N; scanf("%d", &N); int b[100]; for(; N > 0; --N){ long long v; scanf("%lld", &v); memset(b, 0, sizeof(b)); int sz = 0; long long y = v; while(v > 0){ if(v & 1) b[sz] = 1; v >>= 1; sz++; } if(sz < 2){ printf("%lld ", y); continue; } chaa(b, sz); long long r = toint(b, sz); if(r > y) printf("%lld ", r); else printf("%lld ", y); } return 0; }