#include <iostream>
#include <fstream>
#include <string>
using namespace std;

#define in cin
//ifstream in("2282.txt");

string morse[30];

int charAint(char c) {
    switch(c) {
        case '_': return 26;
        case ',': return 27;
        case '.': return 28;
        case '?': return 29;
        default: return c - 'A';
    }
}

char intAchar(int i) {
    switch(i) {
        case 26: return '_';
        case 27: return ',';
        case 28: return '.';
        case 29: return '?';
        default: return (char) i + 'A';
    }
}

char traducir(const string& cadMorse) {
    int i = 0;
    while (i < 30 && cadMorse != morse[i]) i++;
    return intAchar(i);
}

int main() {

    morse[0] = ".-";       morse[7] = "....";     morse[14] = "---";     morse[21] = "...-";
    morse[1] = "-...";     morse[8] = "..";       morse[15] = ".--.";    morse[22] = ".--";
    morse[2] = "-.-.";     morse[9] = ".---";     morse[16] = "--.-";    morse[23] = "-..-";
    morse[3] = "-..";      morse[10] = "-.-";     morse[17] = ".-.";     morse[24] = "-.--";
    morse[4] = ".";        morse[11] = ".-..";    morse[18] = "...";     morse[25] = "--..";
    morse[5] = "..-.";     morse[12] = "--";      morse[19] = "-";
    morse[6] = "--.";      morse[13] = "-.";      morse[20] = "..-";
    
    morse[26] = "..--";    morse[28] = "---.";
    morse[27] = ".-.-";    morse[29] = "----";

    int N;
    in >> N;
    for (int i = 1; i <= N; i++) {
        string cadena, cadMorse = "", resultado = "";
        in >> cadena;
        int length = cadena.length(), cadCant[length], pos = 0;
        for (int j = 0; j < length; j++) {
            cadMorse += morse[charAint(cadena[j])];
            cadCant[length-j-1] = morse[charAint(cadena[j])].length();
        }
        for (int j = 0; j < length; j++) {
            resultado += traducir(cadMorse.substr(pos, cadCant[j]));
            pos += cadCant[j];
        }
        cout << i << ": " << resultado << endl;
    }
    //getchar();
    return 0;
}

