public class Ruader {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String sin = in.nextLine().replaceAll("[^0-9]", "");
while (sin.equals(""))
sin = in.nextLine().replaceAll("[^0-9]", "");
ArrayList<Character> ch = new ArrayList<Character>();
int setSize = 1;
for (int i = 0; i < sin.length(); i++) {
ch.add(sin.charAt(i));
setSize *= i + 1;
}
HashSet<String> set = new HashSet<String>();
while (set.size() < setSize) {
StringBuilder sb = new StringBuilder();
for (Character t : ch)
sb.append(t);
set.add(sb.toString());
Collections.shuffle(ch);
}
for (String t : set)
System.out.println(t);
}
}