#include using namespace std; typedef long long ll; typedef pair pii; #define FOR(i,a,n) for(int i=a;i<(int)(n);i++) #define REP(i,n) FOR(i,0,n) #define ALL(a) (a).begin(),(a).end() #define MP(a,b) make_pair(a,b) #define PB(a) push_back(a) #define F first #define S second const int INF = 2000000000; const int DX[4]={0,1,0,-1}, DY[4]={-1,0,1,0}; struct P{int x;int y;P(int X=0,int Y=0){x=X;y=Y;}}; int main() { int N; cin >> N; vector > s(N); REP(i,N) { string str; cin >> str; s[i] = MP(str[0],str); s[i].S.erase(s[i].S.begin()); } sort(ALL(s)); string T=""; int i=0; while(true) { T += s[0].F; if(!s[0].S.empty()) { s[0].F = s[0].S[0]; s[0].S.erase(s[0].S.begin()); } else s[0].F = '|'; if(s[0].F == '|') { i++; if(i==N) break; } sort(ALL(s)); } cout << T << endl; return 0; }