#include <bits/stdc++.h>
using namespace std;

void solve(){
    vector<int> A;
    int a;
    while(cin >> a,a){A.emplace_back(a);}
    int s=A.size(),n=0;
    for (int i=0;i<s;++i) n+=(A[i]>0);
    vector<vector<int>> G(n);
    vector<int> d,rest(n),p(n);
    d.emplace_back(0); rest[0]=A[0]; p[0]=-1;
    int now=0;
    for (int i=1;i<s;++i){
        if (A[i]>0){
            int nxt=d.size(); rest[nxt]=A[i];
            d.emplace_back(d[now]+1);
            G[now].emplace_back(nxt);
            G[nxt].emplace_back(now);
            --rest[now]; --rest[nxt];
            p[nxt]=now; now=nxt;
        } else {
            for (int j=0;j<d.size();++j){
                if (d[now]+A[i]==d[j]&&rest[j]){
                    G[now].emplace_back(j);
                    G[j].emplace_back(now);
                    --rest[now]; --rest[j];
                    break;
                }
            }
        }
        while(~now&&!rest[now]) now=p[now];
    }
    for (int v=0;v<n;++v){
        cout << v+1;
        sort(G[v].begin(),G[v].end());
        for (int u:G[v]) cout << ' ' << u+1;
        cout << '\n';
    }
}

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    int t; cin >> t;
    for (;t--;){
        solve();
    }
}
