program p1051;
const a:array[1..26] of char=('A','B','C','D','E','F','G',
'H','I','J','K','L','M','N',
'O','P','Q','R','S','T',
'U','V','W','X','Y','Z');
var c,i,j,k,n,d:integer;
st:string;
begin
readln(c);
for i:=1 to c do
begin
readln(st);
k:=0;
j:=1;
while j<=length(st) do
begin
if (st[j]>='0') and (st[j]<='9') then
if j<length(st) then
if (st[j+1]>='0') and (st[j+1]<='9') then
begin
d:=(ord(st[j])-ord('0'))*10+ord(st[j+1])-ord('0');
j:=j+2;
write(a[d]);
end
else
begin
d:=ord(st[j])-ord('0');
write(a[d]);
j:=j+1;
end
else begin
d:=ord(st[j])-ord('0');
write(a[d]);
j:=j+1;
end
else if st[j]='#' then
begin
write(' ');
j:=j+1;
end
else j:=j+1;
end;
writeln;
end;
end.
/**************************************************************
Problem: 2035
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/