import std.stdio;
import std.algorithm;
import std.string;
import std.range;
import std.array;
import std.conv;
import std.complex;
import std.math;
import std.ascii;
import std.bigint;
import std.container;
import std.typecons;

auto readInts() {
	return array(map!(to!int)(readln().strip().split()));
}
auto readInt() {
	return readInts()[0];
}
auto readLongs() {
	return array(map!(to!long)(readln().strip().split()));
}
auto readLong() {
	return readLongs()[0];
}

const real eps = 1e-10;


void main(){
	auto n = readInt();
	const string[char] cmap = [
		'1': ".,!? ",
		'2': "abc",
		'3': "def",
		'4': "ghi",
		'5': "jkl",
		'6': "mno",
		'7': "pqrs",
		'8': "tuv",
		'9': "wxyz"
	];
	for(int i = 0; i < n; ++i) {
		string ans;
		string s = readln().strip();
		while(!s.empty) {
			while(!s.empty && s[0] == '0') {
				s = s.drop(1);
			}
			if(s.empty) {
				break;
			}
			char c = s[0];
			int count;
			while(!s.empty && s[0] == c) {
				s = s.drop(1);
				++count;
			}
			ans = ans ~ cmap[c][(count-1) % cmap[c].length];
		}
		writeln(ans);
	}
}