#include <bits/stdc++.h>
using namespace std;
int sub(string str, string out[]){
if(str.empty()){
out[0] = "";
return 1;
}
int smallOutput = sub(str.substr(1), out);
for(int i=0; i<smallOutput; i++)
out[i + smallOutput] = str[0] + out[i];
return 2*smallOutput;
}
int main() {
// your code goes here
string str;
cin>>str;
string* out = new string[100];
int count = sub(str, out);
sort(out[1].begin(), out[1].end());
for(int i=0; i<count; i++)
cout<<out[i]<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgc3ViKHN0cmluZyBzdHIsIHN0cmluZyBvdXRbXSl7CglpZihzdHIuZW1wdHkoKSl7CgkJb3V0WzBdID0gIiI7CgkJcmV0dXJuIDE7Cgl9CglpbnQgc21hbGxPdXRwdXQgPSBzdWIoc3RyLnN1YnN0cigxKSwgb3V0KTsKCQoJZm9yKGludCBpPTA7IGk8c21hbGxPdXRwdXQ7IGkrKykKCQlvdXRbaSArIHNtYWxsT3V0cHV0XSA9IHN0clswXSArIG91dFtpXTsKCQkKCXJldHVybiAyKnNtYWxsT3V0cHV0Owp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXN0cmluZyBzdHI7CgljaW4+PnN0cjsKCXN0cmluZyogb3V0ID0gbmV3IHN0cmluZ1sxMDBdOwoJaW50IGNvdW50ID0gc3ViKHN0ciwgb3V0KTsKCXNvcnQob3V0WzFdLmJlZ2luKCksIG91dFsxXS5lbmQoKSk7Cglmb3IoaW50IGk9MDsgaTxjb3VudDsgaSsrKQoJCWNvdXQ8PG91dFtpXTw8ZW5kbDsKCQoJcmV0dXJuIDA7Cn0=