#include<bits/stdc++.h>
using namespace std;
const int maxn=1000010;
int n,lens,minn,nxt[maxn];
char s[maxn],ans[maxn];
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
scanf("%s",s+1);
int len=strlen(s+1),z=len;
minn=min(lens,len);
s[++z]='*';
nxt[1]=0;
for(int j=1;j<=minn;j++){
s[++z]=ans[lens-(minn-j)];
}
for(int j=1;j<z;j++){
int t=nxt[j];
while(t&&s[t+1]!=s[j+1]){
t=nxt[t];
}
if(s[t+1]==s[j+1]){
t++;
}
nxt[j+1]=t;
}
for(int j=nxt[z]+1;j<=len;j++){
ans[++lens]=s[j];
}
}
ans[lens+1]='\0';
for(int i=1;i<=lens;i++){
cout<<ans[i];
}
return 0;
}