#include <bits/stdc++.h>
using namespace std;
int n;
int a[30];
int sub[30];
int si;
void printSubsetsPassArrayR(int si, int idx){
if(idx==n){
for(int i=0;i<si;i++){
cout<<sub[i]<<" ";
}
cout<<"\n";
return;
}
cout<<"first :"<<"si= "<<si<<", "<<"idx= "<<idx<<"\n";
printSubsetsPassArrayR(si, idx+1);
sub[si] = a[idx];
cout<<"second :"<<"si= "<<si<<", "<<"idx= "<<idx<<"\n";
printSubsetsPassArrayR(si+1, idx+1);
}
int main(){
int t; cin>>t;
while(t--){
cin>>n;
// ss = 0;
for(int i=0;i<n;i++)
cin>>a[i];
printSubsetsPassArrayR(0, 0);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuOwppbnQgYVszMF07CmludCBzdWJbMzBdOwppbnQgc2k7CnZvaWQgcHJpbnRTdWJzZXRzUGFzc0FycmF5UihpbnQgc2ksIGludCBpZHgpewogICAgaWYoaWR4PT1uKXsKICAgICAgICBmb3IoaW50IGk9MDtpPHNpO2krKyl7CiAgICAgICAgICAgIGNvdXQ8PHN1YltpXTw8IiAiOwogICAgICAgIH0KICAgICAgICBjb3V0PDwiXG4iOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNvdXQ8PCJmaXJzdCA6Ijw8InNpPSAiPDxzaTw8IiwgIjw8ImlkeD0gIjw8aWR4PDwiXG4iOwogICAgcHJpbnRTdWJzZXRzUGFzc0FycmF5UihzaSwgaWR4KzEpOyAKICAgIHN1YltzaV0gPSBhW2lkeF07CiAgICBjb3V0PDwic2Vjb25kIDoiPDwic2k9ICI8PHNpPDwiLCAiPDwiaWR4PSAiPDxpZHg8PCJcbiI7CiAgICBwcmludFN1YnNldHNQYXNzQXJyYXlSKHNpKzEsIGlkeCsxKTsKfQppbnQgbWFpbigpewogICAgaW50IHQ7IGNpbj4+dDsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgY2luPj5uOwogICAgICAgLy8gc3MgPSAwOwogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICAgICAgIGNpbj4+YVtpXTsKICAgICAgICBwcmludFN1YnNldHNQYXNzQXJyYXlSKDAsIDApOwogCiAKICAgIH0KICAgIHJldHVybiAwOwp9
first :si= 0, idx= 0
first :si= 0, idx= 1
first :si= 0, idx= 2
second :si= 0, idx= 2
9
second :si= 0, idx= 1
first :si= 1, idx= 2
7
second :si= 1, idx= 2
7 9
second :si= 0, idx= 0
first :si= 1, idx= 1
first :si= 1, idx= 2
4
second :si= 1, idx= 2
4 9
second :si= 1, idx= 1
first :si= 2, idx= 2
4 7
second :si= 2, idx= 2
4 7 9