#include<iostream>
#include <string>
#include <cstring>
#include<algorithm>
using namespace std;

string ans;
bool st[10];
string s;

void dfs(int u)
{
    if(u == s.size()) // 枚举到最后了,输出当前可行的ans
    {
        cout << ans << endl;
        return;
    }
    
    for(int i = 0; i < s.size(); i++)
    {
        if(!st[i]) // 选过的不选
        {
            st[i] = true;
            ans[u] = s[i]; // 选择当前位
            dfs(u + 1); // 进入下一层
            st[i] = false; // 回溯
        }
    }

}

int main()
{
    cin >> s;
    sort(s.begin(), s.end());
    ans = s;
    dfs(0);
}