#include <iostream>
using namespace std;
int getCodes(string input,string output[1000])
{
if(input[0]=='\0')
{
return 1;
}
char a=('a'+(int)(input[0]-'0')-1);
char b=('a'+(int)(input[0]-'0')*10+(int)(input[1]-'0')-1);
string output1[1000];
string output2[1000];
int count1=getCodes(input.substr(1),output1);
for(int i=0;i<count1;i++)
{
output1[i]=a+output1[i];
}
int count2=0;
if(b>='j'&&b<='z')
{
count2=getCodes(input.substr(2),output2);
}
for(int i=0;i<count2;i++)
{
output2[i]=b+output2[i];
}
for(int i=0;i<count1;i++)
{
output[i]=output1[i];
}
for(int j=0;j<count2;j++)
{
output[j+count1]=output2[j];
}
return count1+count2;
}
int main() {
// your code goes here
string input;
cin>>input;
string output[2000];
int count=getCodes(input,output);
for(int i=0;i<count&&i<2000;i++)
{
cout<<output[i]<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgZ2V0Q29kZXMoc3RyaW5nIGlucHV0LHN0cmluZyBvdXRwdXRbMTAwMF0pCnsKCWlmKGlucHV0WzBdPT0nXDAnKQoJewoJCXJldHVybiAxOwoJfQoJY2hhciBhPSgnYScrKGludCkoaW5wdXRbMF0tJzAnKS0xKTsKCWNoYXIgYj0oJ2EnKyhpbnQpKGlucHV0WzBdLScwJykqMTArKGludCkoaW5wdXRbMV0tJzAnKS0xKTsKCXN0cmluZyBvdXRwdXQxWzEwMDBdOwoJc3RyaW5nIG91dHB1dDJbMTAwMF07CglpbnQgY291bnQxPWdldENvZGVzKGlucHV0LnN1YnN0cigxKSxvdXRwdXQxKTsKCWZvcihpbnQgaT0wO2k8Y291bnQxO2krKykKCXsKCQlvdXRwdXQxW2ldPWErb3V0cHV0MVtpXTsKCX0KCWludCBjb3VudDI9MDsKCWlmKGI+PSdqJyYmYjw9J3onKQoJewoJCWNvdW50Mj1nZXRDb2RlcyhpbnB1dC5zdWJzdHIoMiksb3V0cHV0Mik7CgkJCgl9CgkKCWZvcihpbnQgaT0wO2k8Y291bnQyO2krKykKCXsKCQlvdXRwdXQyW2ldPWIrb3V0cHV0MltpXTsKCX0KCWZvcihpbnQgaT0wO2k8Y291bnQxO2krKykKCXsKCQlvdXRwdXRbaV09b3V0cHV0MVtpXTsKCX0KCWZvcihpbnQgaj0wO2o8Y291bnQyO2orKykKCXsKCQlvdXRwdXRbaitjb3VudDFdPW91dHB1dDJbal07Cgl9CglyZXR1cm4gY291bnQxK2NvdW50MjsKfQppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXN0cmluZyBpbnB1dDsKCWNpbj4+aW5wdXQ7CglzdHJpbmcgb3V0cHV0WzIwMDBdOwoJaW50IGNvdW50PWdldENvZGVzKGlucHV0LG91dHB1dCk7Cglmb3IoaW50IGk9MDtpPGNvdW50JiZpPDIwMDA7aSsrKQoJewoJCWNvdXQ8PG91dHB1dFtpXTw8ZW5kbDsKCX0KCXJldHVybiAwOwp9