#include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(x, to) for (int x = 0; x < (to); x++) #define REP(x, a, to) for (int x = (a); x < (to); x++) #define foreach(itr, x) for (typeof((x).begin()) itr = (x).begin(); itr != (x).end(); itr++) using namespace std; typedef long long ll; typedef pair PII; typedef pair PLL; int N; string s, ans; bool comp(string a, string b) { return true; } priority_queue< string, vector, greater > que; int main() { cin >> N; rep(i, N) { cin >> s; s += "}"; que.push(s); } while (!que.empty()) { string cur = que.top(); que.pop(); if (cur == "}") continue; ans += cur[0]; cur = cur.substr(1); if (cur.size() > 0) { que.push(cur); } } cout << ans << endl; return 0; }