#include <stdio.h>

int main(int argc, const char * argv[]) {
   
    char array[100]={'\0'},buff[1024];
    int n,i,j,c,b = 0,count = 0;
    
    char moziretu[10][6]={{},{'.',',','!','?',' '},{'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'}};
    scanf("%d",&n);
    for (i=0; i<n; i++) {
        
        scanf("%s",buff);
        
        for (j=0; buff[j]!='\0'; j++) {
            
            switch (buff[j]) {
                case '1':
                    if (b>4) {
                        b=0;
                    }
                    b++;
                    
                    
                    break;
                case '2':
                    if (b>2) {
                        b=0;
                    }
                    b++;
                    
                    
                    
                    break;
                    
                case '3':
                    if (b>2) {
                        b=0;
                    }
                    b++;
                    
                    break;
                    
                case '4':
                    if (b>2) {
                        b=0;
                    }
                    b++;
                    
                    break;
                    
                case '5':
                    if (b>2) {
                        b=0;
                    }

                    b++;
                    
                    break;
                    
                case '6':
                    if (b>2) {
                        b=0;
                    }
                    b++;
                    
                    break;
                    
                case '7':
                    if (b>3) {
                        b=0;
                    }
                    b++;
                    
                    break;
                    
                case '8':
                    if (b>2) {
                        b=0;
                    }
                    b++;
                    
                    break;
                    
                case '9':
                    if (b>3) {
                        b=0;
                    }
                    b++;
                    
                    break;
                    
                case '0':
                    
                    if (b!=0) {
                        //kakutei//????????????array?????\??????
                        array[count] = moziretu[(int)buff[j-1]-48][b-1];
                        count++;
                        b=0;
                    }
                    
                    break;
                    
                default:
                    
                    break;
            }
        }
        printf("%s\n",array);
        
        count=0;
        b=0;
        
        for (j =0; j < 100; j++) {
            array[j] = '\0';
        }
        
        for (j = 0; j < 1024; j++) {
            buff[j] = '\0';
        }
        
        
    }
    
    return 0;
}