#include<bits/stdc++.h>
using namespace std;
#define MAX 1000010
#define f(i,a,b) for(int i = a;i <= b;i++)
string A[MAX] , B , C;
int P[MAX];
int len;
int n;
void init(int j = 0) {
f(i,2,len) {
if(j && C[i] != C[j+1]) j = P[j];
j += C[i] == C[j+1];
P[i] = j;
}
}
int main(){
cin >> n;
f(i , 1 , n) {
A[i] = " ";
cin >> B;
A[i] += B;
}
B = "";
f(i , 1 , n) {
int lenb = B.length() , lena = A[i].length() - 1;
if(lenb < lena) C = A[i] + "@^$@@(#*&@*#)" + B;
else {
string next(B,lenb - lena , lena);
C = A[i] + "@^$@@(#*&@*#)"+ next;
}
len = C.length() - 1;
init();
string Now(A[i],P[len] + 1,A[i].length() - 1 - P[len]);
B += Now;
}
cout << B;
return 0;
}