#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
using namespace std;
char suf[260],str[260];
int main()
{
int N;
bool flag=true;
scanf("%d",&N);
getchar();
fgets(suf,260,stdin);
int len1=strlen(suf)-1;
suf[len1]='\0';
N--;
while(N--){
fgets(str,260,stdin);
int len2=strlen(str)-1;
str[len2]='\0';
int i=len1-1, j=len2-1,k=0;
while(i>=0 && j>=0){
if(suf[i]!=str[j]) break;
i--;
j--;
}
if(i==len1-1){
flag=false;
break;
}
strcpy(suf,suf+i+1);
len1=strlen(suf);
}
if(!flag) printf("nai\n");
else printf("%s\n",suf);
return 0;
}
实质上就是求最长后缀子串