#include<iostream>
#include<string>
#include<cstring>
#include<map>
using namespace std;
int key[100];
string ans;
map <char,int> m;
map <char,string> c;
map <string,char> d;
void set()
{
m['A']=2;m['B']=4,m['C']=4,m['D']=3,m['E']=1,m['F']=4,m['G']=3;
m['H']=4;m['I']=2,m['J']=4,m['K']=3,m['L']=4,m['M']=2,m['N']=2;
m['O']=3,m['P']=4,m['Q']=4,m['R']=3,m['S']=3,m['T']=1,m['U']=3;
m['V']=4,m['W']=3,m['X']=4,m['Y']=4,m['Z']=4,m[',']=4,m['?']=4,m['_']=4,m['.']=4;
c['A']=".-";c['B']="-...",c['C']="-.-.",c['D']="-..",c['E']=".",c['F']="..-.",c['G']="--.";
c['H']="....";c['I']="..",c['J']=".---",c['K']="-.-",c['L']=".-..",c['M']="--",c['N']="-.";
c['O']="---",c['P']=".--.",c['Q']="--.-",c['R']=".-.",c['S']="...",c['T']="-",c['U']="..-";
c['V']="...-",c['W']=".--",c['X']="-..-",c['Y']="-.--",c['Z']="--..",c[',']=".-.-",c['.']="---.",c['?']="----",c['_']="..--";
d[".-"]='A',d["-..."]='B',d["-.-."]='C',d["-.."]='D',d["."]='E',d["..-."]='F',d["--."]='G';
d["...."]='H',d[".."]='I',d[".---"]='J',d["-.-"]='K',d[".-.."]='L',d["--"]='M',d["-."]='N';
d["---"]='O',d[".--."]='P',d["--.-"]='Q',d[".-."]='R',d["..."]='S',d["-"]='T',d["..-"]='U';
d["...-"]='V',d[".--"]='W',d["-..-"]='X',d["-.--"]='Y',d["--.."]='Z',d[".-.-"]=',',d["---."]='.',d["----"]='?',d["..--"]='_';
}
int main()
{
int cas;
string s;
set();
int k=0;
cin>>cas;
while(cas--)
{
cin>>s;
k++;
string ss="",sss="";
memset(key,0,sizeof(key));
for(int i=0;i<s.size();i++)
{
key[i]=m[s[i]];
ss+=c[s[i]];
}
int sum=0;
for(int i=s.size()-1;i>=0;i--)
{
string tmp=ss.substr(sum,key[i]);
sss+=d[tmp];
sum+=key[i];
}
cout<<k<<": ";
cout<<sss<<endl;
}
}