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
****************************************************************/