#include <bits/stdc++.h>
using namespace std;
#ifndef M
#define M 1000000007
#endif
#ifndef ONLINE_JUDGE
#define gc getchar
#else
#define gc getchar_unlocked
#endif
typedef pair<int,int>pp;
typedef std::vector<pp> vpp;
typedef long long ll;
typedef long double ld;
#ifndef pb
#define pb push_back
#endif
int min(int x,int y){return(x<y)?x:y;}
int max(int x,int y){return(x>y)?x:y;}
inline long long int read_int()
{
char c = gc();
while(c<'0' || c>'9')
c = gc();
long long int ret = 0;
while(c>='0' && c<='9')
{
ret = (ret<<3) + (ret<<1) + c - 48;
c = gc();
}
return ret;
}
bool cmpfun(ll a ,ll b)
{
ll c1=__builtin_popcount (a),c2=__builtin_popcount (b);
if(c1==c2)
return(a>b);
return(c2<c1);
}
int main(int argc, char const *argv[])
{
ll t,n,a[100005]={0};
scanf("%lld",&t);
while(t--)
{
n=read_int();
for (int i = 0; i < n; ++i)
{
a[i]=read_int();
}
sort(a,a+n,cmpfun);
for (int i = 0; i < n; ++i)
{
printf("%lld ",a[i]);
}
printf("\n");
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNpZm5kZWYgTQojZGVmaW5lIE0gMTAwMDAwMDAwNwojZW5kaWYKI2lmbmRlZiBPTkxJTkVfSlVER0UKI2RlZmluZSBnYyBnZXRjaGFyCiNlbHNlCiNkZWZpbmUgZ2MgZ2V0Y2hhcl91bmxvY2tlZAojZW5kaWYKdHlwZWRlZiBwYWlyPGludCxpbnQ+cHA7CnR5cGVkZWYgc3RkOjp2ZWN0b3I8cHA+IHZwcDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CiNpZm5kZWYgcGIKI2RlZmluZSBwYiBwdXNoX2JhY2sgCiNlbmRpZiAKaW50IG1pbihpbnQgeCxpbnQgeSl7cmV0dXJuKHg8eSk/eDp5O30KaW50IG1heChpbnQgeCxpbnQgeSl7cmV0dXJuKHg+eSk/eDp5O30KaW5saW5lIGxvbmcgbG9uZyBpbnQgcmVhZF9pbnQoKQp7CiAgICBjaGFyIGMgPSBnYygpOwogICAgd2hpbGUoYzwnMCcgfHwgYz4nOScpCgkJYyA9IGdjKCk7CiAgICBsb25nIGxvbmcgaW50IHJldCA9IDA7CiAgICB3aGlsZShjPj0nMCcgJiYgYzw9JzknKQogICAgewoJCXJldCA9IChyZXQ8PDMpICsgKHJldDw8MSkgKyBjIC0gNDg7CgkJYyA9IGdjKCk7CiAgICB9CiAgICByZXR1cm4gcmV0Owp9CmJvb2wgY21wZnVuKGxsIGEgLGxsIGIpCnsKCWxsIGMxPV9fYnVpbHRpbl9wb3Bjb3VudCAoYSksYzI9X19idWlsdGluX3BvcGNvdW50IChiKTsKCWlmKGMxPT1jMikKCQlyZXR1cm4oYT5iKTsKCXJldHVybihjMjxjMSk7IAp9CmludCBtYWluKGludCBhcmdjLCBjaGFyIGNvbnN0ICphcmd2W10pCnsKCWxsIHQsbixhWzEwMDAwNV09ezB9OwoJc2NhbmYoIiVsbGQiLCZ0KTsKCXdoaWxlKHQtLSkKCXsKCQluPXJlYWRfaW50KCk7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpCgkJewoJCQlhW2ldPXJlYWRfaW50KCk7CgkJfQoJCXNvcnQoYSxhK24sY21wZnVuKTsKCQlmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkKCQl7CgkJCXByaW50ZigiJWxsZCAiLGFbaV0pOwoJCX0KCQlwcmludGYoIlxuIik7Cgl9CglyZXR1cm4gMDsKfQ==