#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;
}
}