#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
while(1)
{
string str;
cin>>str;
vector<string> current;
int size=str.size()-1;
while(1)
{
int last_size=current.size();
for(int a=0;a!=last_size;++a) //遍历上一次的结果获取,添加当之前字节
current.push_back(str[size]+current[a]);
current.push_back(string(1,str[size]));//只有一个的情形也输入
--size;
if(size==-1)
break;
}
for(vector<string>::iterator iter=current.begin();iter!=current.end();++iter)
cout<<*iter<<endl;
}
return 0;
}