#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
void DFS(vector<string> &alps, string numsSub, string alpsSub) {
if (numsSub.empty()) {
alps.push_back(alpsSub);
return;
}
if (numsSub.size() == 1) {
if (numsSub[0] >= '1' && numsSub[0] <= '9') {
alpsSub += string(1, numsSub[0] - '1' + 'A');
alps.push_back(alpsSub);
}
return;
}
if (numsSub[0] >= '1' && numsSub[0] <= '9') {
string temp = alpsSub + string(1, numsSub[0] - '1' + 'A');
DFS(alps, numsSub.substr(1), temp);
}
if (numsSub[0] == '1') {
string temp = alpsSub + string(1, numsSub[1] - '0' + 'J');;
DFS(alps, numsSub.substr(2), temp);
}
if (numsSub[0] == '2' && numsSub[1] <= '6' && numsSub[1] >= '0') {
string temp = alpsSub + string(1, numsSub[1] - '0' + 'T');
DFS(alps, numsSub.substr(2), temp);
}
}
int main() {
string nums;
cin >> nums;
vector<string> alps;
string numsSub = nums;
string alpsSub;
DFS(alps, numsSub, alpsSub);
sort(alps.begin(),alps.end());
for(auto str:alps)
cout << str << endl;
}