#include <bits/stdc++.h>
using namespace std;
void permuteUnique(string s, int start, vector<string>& result) {
if (start == s.length()) {
result.push_back(s);
return;
}
vector<int> last(10, -1);
for (int i = start; i < s.length(); ++i) {
if (i > start && s[i] == s[i - 1] && last[s[i] - '0'] == i - 1)
continue;
swap(s[i], s[start]);
last[s[start] - '0'] = i;
permuteUnique(s, start + 1, result);
swap(s[i], s[start]);
}
}
int main() {
string s;
cin >> s;
sort(s.begin(), s.end());
vector<string> result;
permuteUnique(s, 0, result);
sort(result.begin(),result.end());
set<string>ans;
for(int i=0;i<=result.size();i++)
{
ans.insert(result[i]);
}
for (const auto& perm : ans) {
cout << perm << endl;
}
return 0;
}