#505. 全排列

全排列

Background

Special for beginners, ^_^

Description

给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有 a<b<<y<za < b < \dots < y < z,而且给定的字符串中的字母已经按照从小到大的顺序排列。

Format

Input

输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在 1 到 6 之间。

Output

输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义:

已知 S=s1s2sk,T=t1t2tkS = s_1s_2\dots s_k, T = t_1t_2\dots t_k,则 S<TS < T 等价于,存在 p(1pk)p (1 \le p \le k),使得 $s_1= t_1, s_2= t_2, \dots, s_{p - 1}= t_{p - 1}, s_p < t_p$ 成立。

Samples

abc
abc
acb
bac
bca
cab
cba

Limitation

1s, 1024KiB for each test case.