#abc223b. [abc223_b]String Shifting

[abc223_b]String Shifting

问题陈述

对于一个非空字符串,左移操作将第一个字符移到字符串的末尾,右移操作将最后一个字符移到字符串的开头。

例如,对 abcde 进行一次左移得到 bcdea,对 abcde 进行两次右移得到 deabc

给定一个由小写英文字母组成的非空字符串 SS。在对 SS 进行任意次数的左移和右移操作后得到的字符串中,找出字典序最小和最大的字符串。

字典序排序是什么意思?

简单来说,字典序排序就是按照字典中的顺序排列单词。更正式的定义如下,这里描述了如何判断不同字符串 SSTT 的字典序关系。

以下,设 SiS_i 表示 SS 的第 ii 个字符。同时,如果 SS 字典序小于 TT,我们将此事实表示为 SltTS \\lt T;如果 SS 字典序大于 TT,我们将此事实表示为 SgtTS \\gt T

  1. LLSSTT 长度的较小值。对于每个 i=1,2,dots,Li=1,2,\\dots,L,我们检查 SiS_iTiT_i 是否相等。
  2. 如果存在某个 ii 使得 SineqTiS_i \\neq T_i,我们设最小的这个 iijj。然后,我们比较 SjS_jTjT_j。如果 SjS_j 在字母表中先出现于 TjT_j,我们确定 SltTS \\lt T 并停止;如果 SjS_j 在字母表中后出现于 TjT_j,我们确定 SgtTS \\gt T 并停止。
  3. 如果不存在任何 ii 使得 SineqTiS_i \\neq T_i,我们比较 SSTT 的长度。如果 SS 长度小于 TT,我们确定 SltTS \\lt T 并停止;如果 SS 长度大于 TT,我们确定 SgtTS \\gt T 并停止。

约束条件

  • 字符串 SS 由小写英文字母组成。
  • SS 的长度范围是 1110001000(包含边界)。

输入

从标准输入读入输入数据,数据格式如下:

SS

输出

输出两行。第一行应包含 SminS_{\\min},第二行应包含 SmaxS_{\\max}。其中,SminS_{\\min}SmaxS_{\\max} 分别表示对 SS 进行任意次数的左移和右移操作后得到的字典序最小和最大的字符串。


示例输入 1

aaba

示例输出 1

aaab
baaa

通过移动操作,我们可以得到四个字符串:aaabaabaabaabaaa。其中,字典序最小的是 aaab,字典序最大的是 baaa


示例输入 2

z

示例输出 2

z
z

无论进行多少次操作,结果都是 z


示例输入 3

abracadabra

示例输出 3

aabracadabr
racadabraab