#include <iostream>
#include <math.h>
using namespace std;

int n;
string S[1003];
void read()
{
    cin>>n;
    for (int i=1; i<=n; i++)
        cin>>S[i];
}

int F[31][31];
void init()
{
    for (int i=0; i<=30; i++)
        for (int j=0; j<=30; j++)
            F[i][j]=0;
}

int LCS(string S1, string S2)
{
    init();
    
    for (int i=0; i<S1.length(); i++)
    {
        for (int j=0; j<S2.length(); j++)
        {
            if (S1[i]==S2[j])
                F[i+1][j+1]=F[i][j]+1;
            else
                F[i+1][j+1]=max(F[i][j+1], F[i+1][j]);
        }
    }
    return F[S1.length()][S2.length()];
}

int main ()
{
    int t;
    cin>>t;
    while (1)
    {
        if (t==0) break;
        t--;
        read();
        int maxLCS = 0;
        for (int i=1; i<=n; i++)
        {
            for (int j=i+1; j<=n; j++)
                maxLCS = max(maxLCS, LCS(S[i], S[j]));
        }
        cout<<maxLCS<<endl;
    }
    return 0;
}