#include<iostream>
#include<cstdio>
#include<string.h>
#include<cmath>
#include<cstdlib>
using namespace std;
const int N = 1e3+5;
int nxt[N];
int cnt = 0;
string s[15];
void GetNext(string s, int length) {
int i=0, j=-1;
nxt[0] = -1;//必须有...
while(i < length) {
if(j == -1 || s[i] == s[j]) {
i++;
j++;
nxt[i] = j;
} else j = nxt[j];
}
}
int KMP(string s1, int n, string s2, int m) {
int i = 0, j = 0;
while(i < n) {
if(j == -1 || s1[i] == s2[j]) {
i++;
j++;
} else
j = nxt[j];
if(j == m) {
// cout<<s2 << i-j+1 << endl;
return i-j+1;
}
}
return -1;
}
int main() {
int T;
cin >> T;
while(T--) {
int n, m;
cin >> n;
for(int i=0; i<n; i++) {
cin >> s[i];
}
string ans = "Z";
int i, j, k, len = s[0].length();
for(i=3; i<=len; i++)
for(int j =0; j<=len-i; j++) {
string s2 = s[0].substr(j, i);
// cout << s2.length() << " " << i << endl;
memset(nxt, 0, sizeof(nxt));
GetNext(s2, i);
for(k=1; k<n; k++) {
int tn = s[k].length();
if(tn < i || KMP(s[k], tn, s2, i) ==-1) {
break;
}
}
if(k == n) {
if(ans.size() < s2.size()) {
ans = s2;
} else if(ans.size() == s2.size() && strcmp(ans.c_str(), s2.c_str()) > 0) {
ans = s2;
}
}
}
if(ans.size()<3)
cout << "no significant commonalities" << endl;
else
cout << ans << endl;
}
return 0;
}