#include<iostream>
using namespace std;
const int N=200;
int n;
string str[N];//此处N必须为常量
int main()
{
while(cin>>n,n)//读入n个字符串
{
int len=1000;
for(int i=0;i<n;i++)
{
cin>>str[i];//这里的str[i]代表一个字符数组
if(len>str[i].size()) len=str[i].size();//确定字符串长度
}
while(len)//为0时公共字符串为空字符串
{
bool success=true;//借助bool变量判断
for(int i=1;i<n;i++)//从第二个字符串开始枚举与第一个字符串后len个字符是否相等
{
bool is_same=true;
for(int j=0;j<=len;j++)//枚举从第二个字符数组开始字符后缀是否与第一个相等;当len足够大时需要len--来缩小公共字符后缀范围
{
if(str[0][str[0].size()-j]!=str[i][str[i].size()-j])
{
is_same=false;
break;
}
if(!is_same)
{
success=false;
break;
}
}
if(success) break;
len--;//缩小公共后缀长度
}
cout<<str[0].substr(str[0].size()-len)<<endl;
}
}
return 0;
}