#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
void rec(char * inp, char* outp, int i, int j){
//base case
if(inp[i]=='\0'){
outp[j]='\0';
//if(outp<inp){
cout<<outp<<endl;
//}
}
//
for(int k=i;inp[k]!='\0';k++){
swap(inp[i],inp[k]);
outp[j]=inp[i];
rec(inp,outp,i+1,j+1);
swap(inp[i],inp[k]);
}
}
int main() {
char inp[100],outp[100];
cin>>inp;
sort(inp,inp+strlen(inp));
rec(inp,outp,0,0);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZy5oPgojaW5jbHVkZTxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHJlYyhjaGFyICogaW5wLCBjaGFyKiBvdXRwLCBpbnQgaSwgaW50IGopewoJLy9iYXNlIGNhc2UKCWlmKGlucFtpXT09J1wwJyl7CgkJb3V0cFtqXT0nXDAnOwoJCS8vaWYob3V0cDxpbnApewoJICAgICBjb3V0PDxvdXRwPDxlbmRsOwoJCS8vfQkgCgl9CgkvLwoJZm9yKGludCBrPWk7aW5wW2tdIT0nXDAnO2srKyl7CgkJc3dhcChpbnBbaV0saW5wW2tdKTsKCQlvdXRwW2pdPWlucFtpXTsKCQlyZWMoaW5wLG91dHAsaSsxLGorMSk7CgkJc3dhcChpbnBbaV0saW5wW2tdKTsKCX0KfQoKaW50IG1haW4oKSB7CgljaGFyIGlucFsxMDBdLG91dHBbMTAwXTsKCWNpbj4+aW5wOwoJc29ydChpbnAsaW5wK3N0cmxlbihpbnApKTsKCXJlYyhpbnAsb3V0cCwwLDApOwoJcmV0dXJuIDA7Cn0=