#include<bits/stdc++.h>
using namespace std;
map<vector<char>, int> mp;
static int ls;
void dfs(string &s,vector<int> visit, vector<char> u,int cn) {
    //cout << "start";
    if(cn==ls){
        mp[u]=1; 
        return;
    }
           
    for (int i = 0; i < ls;i++){
        //cout << visit[i];
        if(visit[i]==0){
            visit[i]=1;
            u[cn] = s[i];
            dfs(s, visit, u,cn+1);
            visit[i] = 0;
        }
        
    }
}
bool cmp(const char &a,const char &b){
	return a-'A' < b-'A';
}
int main()
{
    string s;
    while(cin >> s){
        ls = s.size();
        if(ls==1){
            cout << s << endl;
            return 0;
        }
        sort(s.begin(), s.end(), cmp);
        //cout << s << endl;
        vector<char> u(ls);
        vector<int> v(ls);
        dfs(s,v, u,0);
        for(auto &[res,num]:mp){
            for(auto &ans:res){
                cout << ans;
            }
            cout << endl;
        }

    }   
    return 0;
}