#include <stdio.h>

char henkan(int a,int b){
	switch(a){
	case 1:
		switch(b % 5){
		case 0:
			return ' ';
		case 1:
			return '.';
		case 2:
			return ',';
		case 3:
			return '!';
		case 4:
			return '?';
		}
	case 2:
		switch(b % 3){
		case 0:
			return 'c';
		case 1:
			return 'a';
		case 2:
			return 'b';
		}
	case 3:
		switch(b % 3){
		case 0:
			return 'f';
		case 1:
			return 'd';
		case 2:
			return 'e';
		}
	case 4:
		switch(b % 3){
		case 0:
			return 'i';
		case 1:
			return 'g';
		case 2:
			return 'h';
		}
	case 5:
		switch(b % 3){
		case 0:
			return 'l';
		case 1:
			return 'j';
		case 2:
			return 'k';
		}
	case 6:
		switch(b % 3){
		case 0:
			return 'o';
		case 1:
			return 'm';
		case 2:
			return 'n';
		}
	case 7:
		switch(b % 4){
		case 0:
			return 's';
		case 1:
			return 'p';
		case 2:
			return 'q';
		case 3:
			return 'r';
		}
	case 8:
		switch(b % 3){
		case 0:
			return 'v';
		case 1:
			return 't';
		case 2:
			return 'u';
		}
	case 9:
		switch(b % 4){
		case 0:
			return 'z';
		case 1:
			return 'w';
		case 2:
			return 'x';
		case 3:
			return 'y';
		}
	default:
		return 'NUL';
	}
}

int main(void){
	int n,i,j;
	char c[1025] = {0};
	char r;
	
	scanf("%d",&n);
	for(i = 0;i < n;i++){
		int a = 0,b = 0;
		scanf("%c",&r);
		scanf("%s",c);
		for(j = 0;j < strlen(c);j++){
			if(c[j] == '0'){
				if(c[j - 1] != '0' && j != 0) printf("%c",henkan(a,b));
				a = b = 0;
			}else{
				a = c[j] - '0';
				b++;
			}
		}
		printf("\n");
	}
	return 0;
}
