#include <bits/stdc++.h>
using namespace std ;
#define ll long long
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define fir first
#define sec second
#define piint pair < int , int >
#define FOR( i , a , b ) for (int i = (a) , _b = (b) ; i <= _b ; i ++ )
#define pb push_back
#define str string
#define ALL(a) (a).begin() , (a).end()
#define rep( i , a , b) for (int i = (a) ; i < (b) ; i ++ )
#define ld long double
const int maxn = 1000;
#define debug 0
#define oo (ll)(1e18)
void soRT ( vector < pair < ll , ll > >& v ){
if ( v.empty()) return;
if ( v.size() == 1 ) return ;
vector < pair < ll , ll > > v_1 , v_2 ;
rep ( i , 0 , (int)v.size() ) {
if ( v[i].sec & 1 ) {
v_1.pb ( { v[i].fir , (v[i].sec + 1)/2 }) ;
}
else {
v_2.pb ( { v[i].fir , v[i].sec /2 }) ;
}
}
soRT ( v_1 ) ;
soRT ( v_2 ) ;
vector < pair < ll , ll > > neww ;
for (auto x : v_1 )
neww .pb ( {x.fir,x.sec} );
for (auto x : v_2)
neww .pb ( {x.fir,x.sec}) ;
if(debug){
for (auto x : neww ) {
cerr << "(" << x.fir << "," << x.sec << ")" << ' ' ;
}
}
v = neww ;
}
// int D_PP[maxn+3] ;
int c[maxn+3] ;
void input(){
int n ; cin >> n ;
unordered_map < int ,vector < int > > a;
vector < pair < ll , ll > > v ;
FOR ( i ,1 , n ) {
int x ; cin >> x;
a[x].pb( i );
}
FOR ( x , 0 , 1000 ) {
if (a[x].size()) v.pb ( { x , x }) ;
}
soRT ( v ) ;
for (auto x : v ) {
if( a[x.fir].size() != 0 ) {
for (auto x1: a[x.fir]) {
cout << x1 << ' ';
}
}
}
cout << '\n' ;
}
#define name "TASK"
int main(){
fast
if(fopen(name".INP","r")) {
freopen (name".INP","r",stdin);
freopen (name".OUT","w",stdout);
}
int t; cin >> t ;
while ( t -- ) {
input();
}
cerr << "\nTIME: = " << (1.0*clock())/CLOCKS_PER_SEC << '\n';
return(0) ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQgOyAKCgojZGVmaW5lIGxsIGxvbmcgbG9uZyAKI2RlZmluZSBmYXN0IGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwojZGVmaW5lIGZpciBmaXJzdCAKI2RlZmluZSBzZWMgc2Vjb25kIAojZGVmaW5lIHBpaW50IHBhaXIgPCBpbnQgLCBpbnQgPgojZGVmaW5lIEZPUiggaSAsIGEgLCBiICkgZm9yIChpbnQgaSA9IChhKSAsIF9iID0gKGIpIDsgaSA8PSBfYiA7IGkgKysgKSAgCiNkZWZpbmUgcGIgcHVzaF9iYWNrIAojZGVmaW5lIHN0ciBzdHJpbmcgCiNkZWZpbmUgQUxMKGEpIChhKS5iZWdpbigpICwgKGEpLmVuZCgpIAojZGVmaW5lIHJlcCggaSAsIGEgLCBiKSBmb3IgKGludCBpID0gKGEpIDsgaSA8IChiKSA7IGkgKysgKQojZGVmaW5lIGxkIGxvbmcgZG91YmxlCmNvbnN0IGludCBtYXhuID0gMTAwMDsKI2RlZmluZSBkZWJ1ZyAwCiNkZWZpbmUgb28gKGxsKSgxZTE4KQoKCnZvaWQgc29SVCAoIHZlY3RvciA8IHBhaXIgPCBsbCAsIGxsID4gPiYgdiApewoJaWYgKCB2LmVtcHR5KCkpIHJldHVybjsKCWlmICggdi5zaXplKCkgPT0gMSApIHJldHVybiA7Cgl2ZWN0b3IgPCBwYWlyIDwgbGwgLCBsbCA+ID4gdl8xICwgdl8yIDsKCglyZXAgKCBpICwgMCAsIChpbnQpdi5zaXplKCkgKSB7CgkJaWYgKCB2W2ldLnNlYyAmIDEgKSB7CgkJCXZfMS5wYiAoIHsgdltpXS5maXIgLCAodltpXS5zZWMgKyAxKS8yIH0pIDsKCQl9CgkJZWxzZSB7CgkJCXZfMi5wYiAoIHsgdltpXS5maXIgLCB2W2ldLnNlYyAvMiB9KSA7CgkJfQoJfQoJc29SVCAoIHZfMSApIDsKCXNvUlQgKCB2XzIgKSA7Cgl2ZWN0b3IgPCBwYWlyIDwgbGwgLCBsbCA+ID4gbmV3dyA7Cglmb3IgKGF1dG8geCA6IHZfMSApIAoJbmV3dyAucGIgKCB7eC5maXIseC5zZWN9ICApOwoJZm9yIChhdXRvIHggOiB2XzIpIAoJbmV3dyAucGIgKCB7eC5maXIseC5zZWN9KSA7IAoJaWYoZGVidWcpewoJCWZvciAoYXV0byB4IDogbmV3dyApIHsKCQkJY2VyciA8PCAiKCIgPDwgeC5maXIgPDwgIiwiIDw8IHguc2VjIDw8ICIpIiA8PCAnICcgOyAKCQl9Cgl9Cgl2ID0gbmV3dyA7IAp9CgovLyBpbnQgRF9QUFttYXhuKzNdIDsKaW50IGNbbWF4biszXSA7CnZvaWQgaW5wdXQoKXsKCWludCBuIDsgY2luID4+IG4gOwoJdW5vcmRlcmVkX21hcCA8IGludCAsdmVjdG9yIDwgaW50ID4gPiBhOwoJCgl2ZWN0b3IgPCBwYWlyIDwgbGwgLCBsbCA+ID4gdiA7CgogICAgCglGT1IgKCBpICwxICwgbiApIHsKCQkKCQlpbnQgeCA7IGNpbiA+PiB4OwoJCWFbeF0ucGIoIGkgKTsgCgkJCgl9CglGT1IgKCB4ICwgMCAsIDEwMDAgKSB7CgkJaWYgKGFbeF0uc2l6ZSgpKSB2LnBiICggeyB4ICwgeCB9KSA7CiAJfQogCQoJc29SVCAoIHYgKSA7CgkKCWZvciAoYXV0byB4IDogdiApIHsKCQlpZiggYVt4LmZpcl0uc2l6ZSgpICE9IDAgKSB7CgkJCWZvciAoYXV0byB4MTogYVt4LmZpcl0pIHsKCQkJCWNvdXQgPDwgeDEgPDwgJyAnOwoJCQl9CgoJCX0KCX0KCWNvdXQgPDwgJ1xuJyA7Cn0KI2RlZmluZSBuYW1lICJUQVNLIiAKaW50IG1haW4oKXsKICAgIGZhc3QgCiAgICBpZihmb3BlbihuYW1lIi5JTlAiLCJyIikpIHsKICAgICAgICBmcmVvcGVuIChuYW1lIi5JTlAiLCJyIixzdGRpbik7CiAgICAgICAgZnJlb3BlbiAobmFtZSIuT1VUIiwidyIsc3Rkb3V0KTsKICAgIH0KICAgIGludCB0OyBjaW4gPj4gdCA7CiAgICB3aGlsZSAoIHQgLS0gKSB7CgogICAgCWlucHV0KCk7CiAgICB9CiAgICBjZXJyIDw8ICJcblRJTUU6ID0gIiA8PCAoMS4wKmNsb2NrKCkpL0NMT0NLU19QRVJfU0VDIDw8ICdcbic7CiAgICByZXR1cm4oMCkgOwp9Cg==