#include using namespace std; long long n,x; bool b[50]; int main() { cin >> n; while(n--) { for(int i = 0; i <= 50; i++)b[i] = 0; cin >> x; long long aux = x; int i = 0; while(aux) { b[i] = aux%2; i++; aux /=2; } int poz1 = -1, poz0 = -1; for(int j = 0; j < i; j++) { if(b[j] && poz1<0) { poz1 = j; } if(!b[j])poz0 = j; } swap(b[poz0], b[poz1]); long long pow = 1; long long ans = 0; for(int j = 0; j < i; j++) { ans += pow * b[j]; pow *= 2; } cout << max(ans, x) << " "; } }