#include #include #include #include #include #include #include #define rep(i, n) for (int i = 0; i < (n); i++) #define rrep(i, n) for (int i = (n)-1; i >= 0; i--) using namespace std; typedef long long int lli; lli MOD = 1000000007; int main() { priority_queue, vector>, greater>> que; int n; cin >> n; string s[55] = {}; int cnt[55] = {}; int size[55] = {}; rep(i, n) { cin >> s[i]; cnt[i] = 1; size[i] = s[i].size(); s[i] += "zzzzzzz"; que.push(make_pair(s[i], i)); } string t = ""; while (!que.empty()) { t += que.top().first[0]; int id = que.top().second; // cout << id << ' ' << t << endl; que.pop(); if (cnt[id] < size[id]) { que.push(make_pair(s[id].substr(cnt[id], s[id].size() - cnt[id]), id)); cnt[id]++; } } cout << t << endl; }