#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; } }