#include<bits/stdc++.h>
using namespace std;
 
int a[500],x,c;
int t[500],u[500];
vector<int> G[500];
 
void init(){
  for(int i=0;i<500;i++){
    G[i].clear();
    u[i]=0;
  }
}
 
int main(){
  int Tc;
  cin>>Tc;
  while(Tc--){
    init();
    a[0]=x=c=1;
    cin>>t[1];
    int q;
    while(1){
      //if(x==0){cin>>q;break;}
      int p=a[--x];
      if(t[p]>0&&t[p]==(int)G[p].size())
        continue; 
      cin>>q;
      if(q==0)break;
      if(q>0){
        t[++c]=q;
        G[p].push_back(c);
        G[c].push_back(p);
        a[x++]=p;
        a[x++]=c;
      }else{
        G[p].push_back(a[x+q]);
        G[a[x+q]].push_back(p);
        if((int)G[p].size()<t[p])a[x++]=p;
      }
    }
 
    for(int i=1;G[i].size();i++){
      cout<<i;
      sort(G[i].begin(),G[i].end());
      for(int j=0;j<(int)G[i].size();j++)
        cout<<' '<<G[i][j];
      cout<<endl;
    }
  }
  return 0;
}