HDU -1238 Substrings
#include<iostream>
#include<algorithm>
using namespace std;
string s[110],s1,s2;
int n;
int judge()
{
s2=s1;reverse(s2.begin(),s2.end());for(int i=1;i<n;i++)if(s[i].find(s1)==string::npos&&s[i].find(s2)==string::npos)return 0;return 1;
}
int main(void)
{
int T;cin>>T;while(T--){
cin>>n;for(int i=0;i<n;i++) cin>>s[i];int res=0;int len=s[0].size();for(int i=0;i<len;i++)for(int j=len-1;j>=i;j--){
if(j-i+1<res) continue;s1=s[0].substr(i,j-i+1);if(judge()) res=max(res,j-i+1);}cout<<res<<endl;}return 0;
}