#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;

vector<string> resultStr_list;
bool hash_bool[10];
void dfs(int n, string& input_str, string& output_str) {
    if (n == 0) {
        resultStr_list.push_back(output_str);
        return;
    }
    for (int i = 0; i < input_str.size(); i++) {
        if (hash_bool[i] == false) {
            hash_bool[i] = true;
            string temp_str = output_str + input_str[i];
            dfs(n - 1, input_str, temp_str);
            hash_bool[i] = false;
        }
    }
}

int main() {

    string input_str;
    cin>>input_str;
    string output_str = "";
    for (int i = 0; i < 10; i++) {
        hash_bool[i] = false;
    }
    dfs(input_str.size(), input_str, output_str);
    for (int i = 0; i < resultStr_list.size(); i++) {
        cout << resultStr_list[i] << endl;
    }
}