#include<iostream>
#include<cmath>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
int main()
{
int test;
cin>>test;
int sum[100001],subsum[100001],orig[100];
while(test--)
{
int n,m;
cin>>m;
n=pow(2,m);
queue<int>q;
int i,idx=0;
int ans=0;
for(i=0;i<n;i++)
cin>>sum[i];
sort(sum,sum+n);
if(n==2)
cout<<sum[1];
else
{
orig[ans++]=sum[1];
orig[ans++]=sum[2];
subsum[idx++]=sum[1];
subsum[idx++]=sum[2];
subsum[idx++]=sum[1]+sum[2];
q.push(sum[1]+sum[2]);
for(i=3;i<n;i++)
{
if(!q.empty() && sum[i]==q.front())
q.pop();
else
{
orig[ans++]=sum[i];
subsum[idx++]=sum[i];
// generate all subsets
int size=idx;
for(int k=0;k<size-1;k++)
{
subsum[idx++]=sum[i]+subsum[k];
//cout<<"going in queue : "<<sum[i]+subsum[k]<<endl;
q.push(sum[i]+subsum[k]);
}
}
}
for(i=0;i<ans-1; i++)
cout<<orig[i]<<" ";
}
if(ans-1>=0)
cout<<orig[ans-1];
cout<<endl;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKCWludCB0ZXN0OwoJY2luPj50ZXN0OwoJaW50IHN1bVsxMDAwMDFdLHN1YnN1bVsxMDAwMDFdLG9yaWdbMTAwXTsKCXdoaWxlKHRlc3QtLSkKCXsKCWludCBuLG07CgljaW4+Pm07CgluPXBvdygyLG0pOwoJcXVldWU8aW50PnE7CgoJaW50IGksaWR4PTA7CglpbnQgYW5zPTA7CgkKCWZvcihpPTA7aTxuO2krKykKCSBjaW4+PnN1bVtpXTsKCglzb3J0KHN1bSxzdW0rbik7CglpZihuPT0yKQoJIGNvdXQ8PHN1bVsxXTsKCSBlbHNlCgkgewoJb3JpZ1thbnMrK109c3VtWzFdOwoJb3JpZ1thbnMrK109c3VtWzJdOwoJCglzdWJzdW1baWR4KytdPXN1bVsxXTsKCXN1YnN1bVtpZHgrK109c3VtWzJdOwoJc3Vic3VtW2lkeCsrXT1zdW1bMV0rc3VtWzJdOwoJCglxLnB1c2goc3VtWzFdK3N1bVsyXSk7CgkKCWZvcihpPTM7aTxuO2krKykKCXsKCQlpZighcS5lbXB0eSgpICYmIHN1bVtpXT09cS5mcm9udCgpKQoJCSAJcS5wb3AoKTsKCQkgCgkJIGVsc2UKCQkgewoJCSAgICBvcmlnW2FucysrXT1zdW1baV07CgkJIAlzdWJzdW1baWR4KytdPXN1bVtpXTsKCQkgCS8vIGdlbmVyYXRlIGFsbCBzdWJzZXRzCgkJIAlpbnQgc2l6ZT1pZHg7CgkJIAlmb3IoaW50IGs9MDtrPHNpemUtMTtrKyspCgkJIAl7CgkJIAkJc3Vic3VtW2lkeCsrXT1zdW1baV0rc3Vic3VtW2tdOwoJCSAJCS8vY291dDw8ImdvaW5nIGluIHF1ZXVlIDogIjw8c3VtW2ldK3N1YnN1bVtrXTw8ZW5kbDsKCQkgCQlxLnB1c2goc3VtW2ldK3N1YnN1bVtrXSk7CgkJIAl9CgkJIAkKCQkgfQoJfQoJZm9yKGk9MDtpPGFucy0xOyBpKyspCgkgY291dDw8b3JpZ1tpXTw8IiAiOwoJIH0KCSBpZihhbnMtMT49MCkKCSBjb3V0PDxvcmlnW2Fucy0xXTsKCSBjb3V0PDxlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=