#include <bits/stdc++.h>
#define INT long long int
#define N 3
#define PA pair<INT, INT>
#define oo 9876543219876543
#define MOD 1000000007
using namespace std;
INT T, n, t, ans, path[100], ansp[100], id;
string s;
vector<INT> G[100], st[100], ed[100];

char in[100], out[100], x;
int main()
{
    srand(time(NULL));
    ios::sync_with_stdio(false);
    cin>>T;
    freopen(".info","w",stdout);
    cout<<T<<endl<<1000<<endl;
    for(int no = 1 ; no <= T ; no++ )
    {
        map<string, INT> di;
        map<INT, string> dii;
        id = 1;
        s = "";
        sprintf(in, ".%d.in", no);
        freopen(in, "w", stdout);
        cin>>n;
        for(int i = 0 ; i < n ; i++ )
            s += (char)((rand()%26)+'a');
        cout<<n<<endl<<s<<endl;
        sprintf(out, ".%d.out", no);
        freopen(out, "w", stdout);
        INT t = 0;
        ans = 0;
        for(int i = 0 ; i < n ; i++ )
            if( !di[s.substr(i,1)] )
                dii[id] = s[i], di[s.substr(i,1)] = id++;
        for(int i = 0 ; i < n ; i++ )
        {
            INT cd = 0;
            for(int j = 1 ; i+j-1 < n ; j++ )
            {
                if( di[s.substr(i, j)] )
                {
                    cd = di[s.substr(i, j)];
                    continue;
                }
                dii[id] = s.substr(i, j), di[s.substr(i, j)] = id++;
                i = i+j-2;
                break;
            }
            //cout<<cd<<" ";
        }
        for(auto w : dii) cout<<w.first<<":"<<w.second<<endl;
        cout<<endl;
    }
    return 0;
}
