#include<bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a),i##ss=(b);i<=i##ss;i++)
#define REP(i,a,b) for(int i=(a),i##ss=(b);i>=i##ss;i--)
#define deb(x) cerr<<(#x)<<":"<<(x)<<'\n'
#define pb push_back
#define fi first
#define se second
#define hvie '\n'
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
int yh(){
	int ret=0;bool f=0;char c=getchar();
	while(!isdigit(c)){if(c==EOF)return -1;if(c=='-')f=1;c=getchar();}
	while(isdigit(c))ret=(ret<<3)+(ret<<1)+(c^48),c=getchar();
	return f?-ret:ret;
}
const int maxn=1e5+5;
map<string,char>m;
int main(){
	m["1 0 0 1 0"]='a';
	m["1 1 0 2 0"]='b';
	m["2 0 0 1 1"]='c';
	m["2 1 0 1 2"]='d';
	m["1 1 0 1 1"]='e';
	m["2 1 0 2 1"]='f';
	m["2 2 0 2 2"]='g';
	m["1 2 0 2 1"]='h';
	// m["1 1 0 1 1"]='i';
	m["1 2 0 1 2"]='j';
	m["1 0 1 2 0"]='k';
	m["1 1 1 3 0"]='l';
	m["2 0 1 2 1"]='m';
	m["2 1 1 2 2"]='n';
	m["1 1 1 2 1"]='o';
	m["2 1 1 3 1"]='p';
	m["2 2 1 3 2"]='q';
	m["1 2 1 3 1"]='r';
	//m["1 1 1 2 1"]='s';
	m["1 2 1 2 2"]='t';
	m["1 0 2 2 1"]='u';
	m["1 1 2 3 1"]='v';
	m["1 2 1 1 3"]='w';
	m["2 0 2 2 2"]='x';
	m["2 1 2 2 3"]='y';
	m["1 1 2 2 2"]='z';
	int n=yh();
	while(n--){
		string s;getline(cin,s);
		cout<<m[s];
	}

	return 0;
}

### Prompt

In CPP, your task is to solve the following problem:



Input

The first line of the input contains a single integer N (1 ≤ N ≤ 24). The next N lines contain 5 space-separated integers each. The first three integers will be between 0 and 2, inclusive. The last two integers will be between 0 and 3, inclusive. The sum of the first three integers will be equal to the sum of the last two integers.

Output

Output the result – a string of lowercase English letters.

Examples

Input


1
1 0 0 1 0


Output


a


Input


10
2 0 0 1 1
1 1 1 2 1
2 1 0 1 2
1 1 0 1 1
2 1 0 2 1
1 1 1 2 1
1 2 1 3 1
2 0 0 1 1
1 1 0 1 1
1 1 2 2 2


Output


codeforcez

### Response

```cpp
#include<bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a),i##ss=(b);i<=i##ss;i++)
#define REP(i,a,b) for(int i=(a),i##ss=(b);i>=i##ss;i--)
#define deb(x) cerr<<(#x)<<":"<<(x)<<'\n'
#define pb push_back
#define fi first
#define se second
#define hvie '\n'
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
int yh(){
	int ret=0;bool f=0;char c=getchar();
	while(!isdigit(c)){if(c==EOF)return -1;if(c=='-')f=1;c=getchar();}
	while(isdigit(c))ret=(ret<<3)+(ret<<1)+(c^48),c=getchar();
	return f?-ret:ret;
}
const int maxn=1e5+5;
map<string,char>m;
int main(){
	m["1 0 0 1 0"]='a';
	m["1 1 0 2 0"]='b';
	m["2 0 0 1 1"]='c';
	m["2 1 0 1 2"]='d';
	m["1 1 0 1 1"]='e';
	m["2 1 0 2 1"]='f';
	m["2 2 0 2 2"]='g';
	m["1 2 0 2 1"]='h';
	// m["1 1 0 1 1"]='i';
	m["1 2 0 1 2"]='j';
	m["1 0 1 2 0"]='k';
	m["1 1 1 3 0"]='l';
	m["2 0 1 2 1"]='m';
	m["2 1 1 2 2"]='n';
	m["1 1 1 2 1"]='o';
	m["2 1 1 3 1"]='p';
	m["2 2 1 3 2"]='q';
	m["1 2 1 3 1"]='r';
	//m["1 1 1 2 1"]='s';
	m["1 2 1 2 2"]='t';
	m["1 0 2 2 1"]='u';
	m["1 1 2 3 1"]='v';
	m["1 2 1 1 3"]='w';
	m["2 0 2 2 2"]='x';
	m["2 1 2 2 3"]='y';
	m["1 1 2 2 2"]='z';
	int n=yh();
	while(n--){
		string s;getline(cin,s);
		cout<<m[s];
	}

	return 0;
}

```