#include<stdio.h>
#include<string.h>
#include<ctype.h>
char *mapping[] = {
{
    "",
    "",
    "ABC",
    "DEF",
    "GHI",
    "JKL",
    "MNO",
    "PQRS",
    "TUV",
    "WXYZ"
};
char results[100][100];
int resultscount = 0;
void backtrack(char *digits, int index, char *current)
{
    if (digits[index] == '\0'){
        strcpy(result[resultCount++], current);
        return 0;
    }
    int digits = digits[index] - '0';
    char *letters = mapping[digits];
    
    for (int i = 0; letters[i] != '\0'; i++) 
    {
        current[index] = letters[i];
        backtrack(digits, index + 1, current);
        
    }
}
int main() {
    char digits[105];
    scanf("%s",&digits);
    for(int i = 0; digits[i] != '\0'; i++) {
        if( !isdigit(digits[i]) || digits[i] < '2' || digits[i] > '9') 
        {
            printf("Invalid input");
            return 0;
        }
    }
    if (strlen(digits) == 0) {
        return 0;
    }
    char current[105] = {0};
    backtrack(digits, 0, current);
    printf("%s", result[i]);
    if (i != resultCount - 1)
    printf(", ");
}
printf(" ] ");
return 0;
}