#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
int main() {
std::string input;
std::cin >> input;
std::vector<std::string> passwords;
std::string password = "";
for (int i = 0; i < input.size(); ++i) {
int digit = input[i] - '0';
// If the current digit is between 1 and 9, append the corresponding character to the password
if (digit >= 1 && digit <= 9) {
char ch = 'a' + digit - 1;
password += ch;
passwords.push_back(password);
password.pop_back(); // Remove the last character to backtrack
}
// If there are two digits left and they represent a number between 10 and 26, append the corresponding character
if (i + 1 < input.size()) {
int twoDigit = (input[i] - '0') * 10 + (input[i + 1] - '0');
if (twoDigit >= 10 && twoDigit <= 26) {
char ch = 'a' + twoDigit - 1;
password += ch;
passwords.push_back(password);
password.pop_back(); // Remove the last character to backtrack
}
}
}
// Sort the generated passwords in lexicographic order
std::sort(passwords.begin(), passwords.end());
// Print the sorted passwords
for (const std::string& password : passwords) {
std::cout << password << std::endl;
}
return 0;
}