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

map<string,string>parent;
map<string,int>sz;

string Find(string u)
{
    if(parent[u] == u) return u;
    return parent[u] = Find(parent[u]);
}

void Union(string a,string b)
{
    parent[a] = b;
    sz[a] += sz[b];
    sz[b] = sz[a];
}
void solve()
{
    int n;
    cin >> n;
    for(int i = 0;i < n;i++)
    {
       string a,b;
       cin >> a >> b;
       if(parent[a] == "") {
            parent[a] = a;
            sz[a] = 1;
       }
       if(parent[b] == "") {
            parent[b] = b; sz[b] = 1;
       }

       string x = Find(a);
       string y = Find(b);

       if(x != y)
       {
           Union(x,y);
       }
       //cout<<"parent : "<<parent[a]<<" "<<parent[b]<<endl;
       cout<<sz[x]<<endl;


    }
    parent.clear();
    sz.clear();

}
int main()
{
    int t;
    cin >> t;
    while(t--)
    {
        solve();
    }
    return 0;
}
