#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#define re register int
#define il inline
#define next neert
using namespace std;
int n,next[1000005];
il void KMP(string s)
{
int len=s.size(),j=0;
s=' '+s;next[0]=next[1]=0;
for(re i=2;i<=len;i++)
{
while(j&&s[i]!=s[j+1])j=next[j];
if(s[i]==s[j+1])j++;
next[i]=j;
}
}
signed main()
{
string s1,s2;
scanf("%d",&n);cin>>s1;n--;
while(n--)
{
cin>>s2;
int len1=s1.size(),len2=s2.size();
string s=s2+"#*/&@$-"+s1.substr(len1-min(len1,len2),min(len1,len2));
KMP(s);
for(re i=next[s.size()];i<len2;i++)s1+=s2[i];
}
cout<<s1;
return 0;
}