module main; // https://kmjp.hatenablog.jp/entry/2015/05/09/0930 より // 貪欲法 import std; void main() { // 入力 int N = readln.chomp.to!int; auto S = new string[](N); foreach (ref s; S) s = readln.chomp ~ "{"; // 後ろに番兵(アルファベットより文字コード順で後の文字)を追加 // 答えの計算 string T; while (true) { int x = -1; // S_iのうち辞書順で最小の文字を探す foreach (i; 0 .. N) if (S[i].length > 1) if (x == -1 || S[x] > S[i]) x = i; if (x == -1) break; T ~= S[x][0]; S[x] = S[x][1 .. $]; } // 答えの出力 writeln(T); }