#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int T;
cin>>T;
for(int o=0;o<T;o++)
{
int n;
cin>>n;
vector<string> ve;
for(int i=0;i<n;i++)
{
string s;
cin>>s;
ve.push_back(s);
}
int jg=0;
for(int i=1;i<=ve[0].size();i++)
{
for(int j=0;(j+i)<=ve[0].size();j++)
{
string t=ve[0].substr(j,i);
string rt=ve[0].substr(j,i);
reverse(rt.begin(),rt.end());
int flag=0;
for(int k=1;k<ve.size();k++)
{
if(ve[k].find(t)==string::npos && ve[k].find(rt)==string::npos)
{
flag=1;
break;
}
}
if(flag==0)
{
jg=max(jg,i);
}
}
}
cout<<jg<<endl;
}
}