#include #include #include using namespace std; #define MOD 666013 int main(){ int n, x, T; char b[35]; scanf("%d", &T); for(int i = 1; i <= T; i++){ scanf("%d", &n); int sets = 0; memset(b, 0, sizeof(char) * 35); int m = n; int k = -1; while(m){ if(m % 2){ b[++k] = 1 + '0'; sets++; }else b[++k] = 0 + '0'; m >>= 1; } int len = strlen(b); for(int i = 0; i <= (len - 1)/ 2; i++){ swap(b[i], b[len-i-1]); } if(sets == 1 || (sets == 2 && b[1] == '1')){ printf("%d ", n); continue; } int e, ch; for(int i = 0; i < len;i++){ if(b[i] == '0'){ e = i; break; } } for(int i = e; i < len; i++){ if(b[i] == '1'){ ch = i; break; } } swap(b[e], b[ch]); int dec = 0; for(int i = 0; i < len; i++){ dec <<= 1; if(b[i] == '1'){ dec += 1; } } printf("%d ", dec); } return 0; }