import java.awt.print.Book;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;

public class Main implements Comparable<String> {
    public static void main (String[] args) throws IOException {
        File file = new File(args[0]);
        BufferedReader buffer = new BufferedReader(new FileReader(file));
        String line;
        while ((line = buffer.readLine()) != null) {
            line = line.trim();
            char[] arr = line.toCharArray();
            Arrays.sort(arr);

            Character[] chrArr = new Character[arr.length];
            for (int i = 0; i < chrArr.length; i++) {
                chrArr[i] = arr[i];
            }

            ArrayList<ArrayList<Character>> answer = permutations(chrArr);
            String s = "";
            for (int i = answer.size()-1; i >= 0; i--) {
                for (int j = 0; j < answer.get(i).size(); j++) {
                    s += answer.get(i).get(j);
                }
                s += ",";
            }

            s = s.substring(0, s.length()-1);

            String[] finalArr = s.split(",");

            Arrays.sort(finalArr);

//            outerloop:
//                for (int i = 0; i < finalArr.length; i++) {
//                    for (int j = (i+1); j < finalArr.length; j++) {
//                        if (j==finalArr.length) {
//                            break outerloop;
//                        }
//                        if (finalArr[i].compareTo(finalArr[j])==1) {
//                            String temp = finalArr[i];
//                            finalArr[i] = finalArr[j];
//                            finalArr[j] = temp;
//                        }
//                    }
//                }

            s = "";
            for (int i = 0; i < finalArr.length; i++) {
                s += (finalArr[i] + ",");
            }
            s = s.substring(0, s.length()-1);

            System.out.println(s);
        }
    }

    public static ArrayList<ArrayList<Character>> permutations(Character[] strArr) {
        ArrayList<ArrayList<Character>> answer = new ArrayList<>();
        answer.add(new ArrayList<>());

        for (int i = 0; i < strArr.length; i++) {
            ArrayList<ArrayList<Character>> current = new ArrayList<>();

            for (ArrayList<Character> left : answer) {
                for (int j = 0; j < left.size()+1; j++) {
                    left.add(j, strArr[i]);

                    ArrayList<Character> temp = new ArrayList<>(left);
                    current.add(temp);

                    left.remove(j);
                }
            }
            answer = new ArrayList<>(current);
        }

        return answer;
    }

    @Override
    public int compareTo(String s) {
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) > toString().charAt(i)) {
                //swap
                return 1;
            } else if (s.charAt(i) == toString().charAt(i)) {
                continue;
            } else {
                break;
            }
        }
        return 0;
    }
}