P1128

[Usaco2007 Dec]队列变换

[Usaco2007 Dec]队列变换

FJ 打算带他的 NN 头奶牛参加一年一度的“全美农场主大奖赛”。在这场比赛中,每位参赛者都必须让自己的奶牛排成一列,并带领她们依次从裁判席前走过。

今年,竞赛委员会采用了一种新的登记规则:登记人员依次取出队伍中每头奶牛名字的首字母,并按照奶牛在队列中的顺序将这些字母组成队伍的登记名称。例如,如果 FJ 的奶牛依次为 Bessie、Sylvia、Dora,那么这支队伍的登记名称就是 BSD。登记结束后,组委会将所有队伍的登记名称按照字典序升序排列,以此确定出场顺序。

FJ 希望尽可能早地出场,因此打算重新调整奶牛的队形。调整时,他每次从原队列的首端或尾端牵出一头奶牛,并将她安排到新队列的尾部。随后,他对剩余的奶牛重复这一操作,直到所有奶牛都进入新队列。

给定奶牛的初始排列,请求出按照上述规则能够得到的字典序最小的新队列。

输入格式

第一行输入一个整数 NN,表示奶牛的数量。

接下来 NN 行,第 ii 行输入一个 A 到 Z 之间的大写字母,表示初始队列中从前往后第 ii 头奶牛名字的首字母。

输出格式

按照顺序输出字典序最小的新队列,共输出 ⌈N/80⌉\lceil N/80\rceil 行。

除最后一行外,每行恰好输出 8080 个大写字母;最后一行输出剩余的字母。如果 NN 是 8080 的倍数,则最后一行也恰好输出 8080 个字母。

样例输入

6
A
C
D
B
C
B

样例输出

ABCBCD

数据范围

  • 1≤N≤3×1041\le N\le 3\times 10^4;
  • 每头奶牛名字的首字母均为 A 到 Z 之间的大写字母。

来源与许可

本题为 USACO 2007 December 试题「队列变换」,题面与测试数据整理自 BZOJ。

样例 1

输入

6
A
C
D
B
C
B

输出

ABCBCD