#include #include #define repeat(i,n) for (int i = 0; (i) < (n); ++(i)) using namespace std; template using reversed_priority_queue = priority_queue, greater >; int main() { int n; cin >> n; reversed_priority_queue que; repeat (i,n) { string s; cin >> s; s += '\xff'; que.push(s); } string ans = ""; while (not que.empty()) { string t = que.top(); que.pop(); ans += t[0]; if (t.size() != 2) { // 1 is for the sentinel que.push(t.substr(1)); } } cout << ans << endl; return 0; }