一群中学生准备参加城市博物馆一日游。他们已经排成了一个队伍。老师决定以一种有趣的方式来重新排列队伍让学生们参观展览。
为了增加参观的有序性,老师要求根据学生名字的首字母重新排列队伍,目标是形成一个以同学们名字的首字母形成的字典序最小的队列。
老师可以选择从原有队伍的前端或后端开始重排学生。每次操作中,老师将一名学生从原有队伍的前端或后端移出,并将该生加入到新队伍的末尾。这个过程持续进行,直到所有学生都被重新排列。
你的任务是帮助老师确定,按照上述方法,能排出的以同学们的名字首字母形成的字典序最小的队列是什么。
第一行包含一个整数 N,表示队伍中学生的数量。
接下来的 N 行,每行一个大写字母,表示原有队伍中学生名字的首字母。
输出一个长度为 N 的字符串,表示以同学们的名字首字母形成的字典序最小的队列。
请注意: 如果输出的字符串超过 80 个字母,每输出 80 个字母后,请输出一个换行符。
6 A B C D B B
ABBBCD
9 L A L C Z D L A L
LALALCLDZ
20 A A B B A B B B B A A A A B B B B B B A
AAABBABBBBAAAABBBBBB
下面是可以取得最小字典序的一个方案。
ABBBCD对于 10% 的测试数据,满足 1 \le N \le 10。
对于 30\% 的测试数据,满足 1 \le N \le 2000。
对于 100\% 的测试数据,满足 1 \le N \le 5 \times 10^5。