#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
int n,a[maxn],dem[maxn],sum[maxn];
int main()
{
int i,j,x,y,t,m,cnt,cnt1;
std::ios::sync_with_stdio(0);
std::cin.tie(0);
std::set <int> s;
cin >> t;
while (t--){
cin >> n;
m = 1 << n;cnt = 0;
for (i=1;i<=m;i++) {cin >> sum[i];s.insert(sum[i]);dem[i] = 0;}
for (i=1;i<=m;i++){
x = std::lower_bound(sum+1,sum+m+1,sum[i]) - sum;
dem[x]++;
}
x = std::lower_bound(sum+1,sum+m+1,0) - sum;
dem[x]--;
if (dem[x] == 0) s.erase(0);
for (j=1;j<=n;j++){
x = *s.begin();
cout << x << " ";
y = std::lower_bound(sum+1,sum+m+1,x) - sum;
dem[y]--;
if (dem[y] == 0) s.erase(x);
cnt1 = cnt;
for (i=1;i<=cnt1;i++){
cnt++;a[cnt] = a[i] + x;
y = std::lower_bound(sum+1,sum+m+1,a[cnt]) - sum;
dem[y]--;
if (dem[y] == 0) s.erase(a[cnt]);
}
cnt++;a[cnt] = x;
}
cout << endl;s.clear();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBtYXhuID0gMTAwMDA1OwppbnQgbixhW21heG5dLGRlbVttYXhuXSxzdW1bbWF4bl07CmludCBtYWluKCkKewogICAgaW50IGksaix4LHksdCxtLGNudCxjbnQxOwogICAgc3RkOjppb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIHN0ZDo6Y2luLnRpZSgwKTsKICAgIHN0ZDo6c2V0IDxpbnQ+IHM7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pewogICAgICAgIGNpbiA+PiBuOwogICAgICAgIG0gPSAxIDw8IG47Y250ID0gMDsKICAgICAgICBmb3IgKGk9MTtpPD1tO2krKykge2NpbiA+PiBzdW1baV07cy5pbnNlcnQoc3VtW2ldKTtkZW1baV0gPSAwO30KICAgICAgICBmb3IgKGk9MTtpPD1tO2krKyl7CiAgICAgICAgICAgIHggPSBzdGQ6Omxvd2VyX2JvdW5kKHN1bSsxLHN1bSttKzEsc3VtW2ldKSAtIHN1bTsKICAgICAgICAgICAgZGVtW3hdKys7CiAgICAgICAgfQogICAgICAgIHggPSBzdGQ6Omxvd2VyX2JvdW5kKHN1bSsxLHN1bSttKzEsMCkgLSBzdW07CiAgICAgICAgZGVtW3hdLS07CiAgICAgICAgaWYgKGRlbVt4XSA9PSAwKSBzLmVyYXNlKDApOwogICAgICAgIGZvciAoaj0xO2o8PW47aisrKXsKICAgICAgICAgICAgeCA9ICpzLmJlZ2luKCk7CiAgICAgICAgICAgIGNvdXQgPDwgeCA8PCAiICI7CiAgICAgICAgICAgIHkgPSBzdGQ6Omxvd2VyX2JvdW5kKHN1bSsxLHN1bSttKzEseCkgLSBzdW07CiAgICAgICAgICAgIGRlbVt5XS0tOwogICAgICAgICAgICBpZiAoZGVtW3ldID09IDApIHMuZXJhc2UoeCk7CiAgICAgICAgICAgIGNudDEgPSBjbnQ7CiAgICAgICAgICAgIGZvciAoaT0xO2k8PWNudDE7aSsrKXsKICAgICAgICAgICAgICAgIGNudCsrO2FbY250XSA9IGFbaV0gKyB4OwogICAgICAgICAgICAgICAgeSA9IHN0ZDo6bG93ZXJfYm91bmQoc3VtKzEsc3VtK20rMSxhW2NudF0pIC0gc3VtOwogICAgICAgICAgICAgICAgZGVtW3ldLS07CiAgICAgICAgICAgICAgICBpZiAoZGVtW3ldID09IDApIHMuZXJhc2UoYVtjbnRdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjbnQrKzthW2NudF0gPSB4OwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGVuZGw7cy5jbGVhcigpOwogICAgfQogICAgcmV0dXJuIDA7Cn0K