#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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHJlYyhjaGFyICogaW5wLCBjaGFyKiBvdXRwLCBpbnQgaSwgaW50IGopewoJLy9iYXNlIGNhc2UKCWlmKGlucFtpXT09J1wwJyl7CgkJb3V0cFtqXT0nXDAnOwoJCWlmKG91dHA8aW5wKXsKCSAgICAgY291dDw8b3V0cDw8ZW5kbDsKCQl9CSAKCX0KCS8vCglmb3IoaW50IGs9aTtpbnBba10hPSdcMCc7aysrKXsKCQlzd2FwKGlucFtpXSxpbnBba10pOwoJCW91dHBbal09aW5wW2ldOwoJCXJlYyhpbnAsb3V0cCxpKzEsaisxKTsKCQlzd2FwKGlucFtpXSxpbnBba10pOwoJfQp9CgppbnQgbWFpbigpIHsKCWNoYXIgaW5wWzEwMF0sb3V0cFsxMDBdOwoJY2luPj5pbnA7Cglzb3J0KGlucCxpbnArc3RybGVuKGlucCkpOwoJcmVjKGlucCxvdXRwLDAsMCk7CglyZXR1cm4gMDsKfQ==