#include <bits/stdc++.h>
#define ll long long
#define ul unsigned long long 
typedef double dl;
#define F first
#define S second
ll MOD = 1000000007; //998244353
#define fast                          \
    ios_base::sync_with_stdio(false); \
    cin.tie(0);                       \
    cout.tie(0);
#define pb push_back
#define g(v, i, j) get<i>(v[j])
#define vi vector<int>
#define vll vector<ll>
#define srt(v) sort(v.begin(), v.end())
#define rsrt(v) sort(v.begin(), v.end(), greater<int>())
#define loop1(i, a, b) for (int i = a; i < b; i++)
#define loop2(i, a, b) for (ll i = a; i < b; i++)
using namespace std;
bool sortbysec(const pair<ll, ll> &a,
               const pair<ll, ll> &b)
{
    return (a.second < b.second);
}
ll POW(ll a,ll b)
{
    if(b==0) return 1;
    if(b==1) return a%MOD;
    ll temp=POW(a,b/2);
    if(b%2==0) return (temp*temp)%MOD;
    else return (((temp*temp)%MOD)*a)%MOD;
}
vector<char> capl = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
vector<char> sml = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
int main()
{
	fast;
    int t;
	cin>>t;
	while(t--)
	{
	    int n;
	    cin>>n;
	    string a[n];
	    loop1(i,0,n)
	    {
	        cin>>a[i];
	    }
	    vector<string>v;
	    v.pb("1");
	    string s2="1";
	    loop1(i,1,n)
	    {
	        if(a[i]=="1")
	        {
	            string c=s2+".1";
	            v.pb(c);
	            s2=c;
	        }
	        else
	        {
	            int d=s2.length();
	            string s1="";
	            for(int j=d-1;j>=0;j--)
	            {
	                if(j==0)
	                {
	                    v.pb(a[i]);
	                    s2=a[i];
	                }
	                if(s2[j]=='.')
	                {
	                    if(s1==a[i])
	                    {
	                        s1="";
	                    }
	                    else
	                    {
	                        int d=stoi(s1),e=stoi(a[i]);
	                        if((e-d)==1)
	                        {
	                        string e=s2.substr(0,j+1)+a[i];
	                        v.pb(e);
	                        s2=e;
	                        break;
	                        }
	                        else
	                        {
	                            s1="";
	                        }
	                    }
	                }
	                else
	                {
	                    s1.insert(s1.begin(),s2[j]);
	                }
	            }
	        }
	    }
	    loop1(i,0,n)
	    {
	        cout<<v[i]<<"\n";
	    }
	}
}
 
 
 
 
 