#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int INF = 0x3F3F3F3F;
const int maxn = 2e5 + 555;
const int MOD = 1e9 + 7;
int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cout.precision(10);
    cout << fixed;
    map<string, char> mp;
    mp["10010"] = 'a';
    mp["11020"] = 'b';
    mp["20011"] = 'c';
    mp["21012"] = 'd';
    mp["11011"] = 'e';
    mp["21021"] = 'f';
    mp["22022"] = 'g';
    mp["12021"] = 'h';
    // mp["11011"] = 'i';
    mp["12012"] = 'j';
    mp["10120"] = 'k';
    mp["11130"] = 'l';
    mp["20121"] = 'm';
    mp["21122"] = 'n';
    mp["11121"] = 'o';
    mp["21131"] = 'p';
    mp["22132"] = 'q';
    mp["12131"] = 'r';
    // mp["11121"] = 's';
    mp["12122"] = 't';
    mp["10221"] = 'u';
    mp["11231"] = 'v';
    mp["12113"] = 'w';
    mp["20222"] = 'x';
    mp["21223"] = 'y';
    mp["11222"] = 'z';
    int n;
    cin >> n;
    while (n--) {
        string s;
        for (int i = 0; i < 5; i++) {
            int x;
            cin >> x;
            s += char('0' + x);
        }
        cout << mp.at(s);
    }
    cout << endl;
    return 0;
}
### Prompt

Develop a solution in CPP to the problem described below:



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>
using namespace std;
using ll = long long;
const int INF = 0x3F3F3F3F;
const int maxn = 2e5 + 555;
const int MOD = 1e9 + 7;
int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cout.precision(10);
    cout << fixed;
    map<string, char> mp;
    mp["10010"] = 'a';
    mp["11020"] = 'b';
    mp["20011"] = 'c';
    mp["21012"] = 'd';
    mp["11011"] = 'e';
    mp["21021"] = 'f';
    mp["22022"] = 'g';
    mp["12021"] = 'h';
    // mp["11011"] = 'i';
    mp["12012"] = 'j';
    mp["10120"] = 'k';
    mp["11130"] = 'l';
    mp["20121"] = 'm';
    mp["21122"] = 'n';
    mp["11121"] = 'o';
    mp["21131"] = 'p';
    mp["22132"] = 'q';
    mp["12131"] = 'r';
    // mp["11121"] = 's';
    mp["12122"] = 't';
    mp["10221"] = 'u';
    mp["11231"] = 'v';
    mp["12113"] = 'w';
    mp["20222"] = 'x';
    mp["21223"] = 'y';
    mp["11222"] = 'z';
    int n;
    cin >> n;
    while (n--) {
        string s;
        for (int i = 0; i < 5; i++) {
            int x;
            cin >> x;
            s += char('0' + x);
        }
        cout << mp.at(s);
    }
    cout << endl;
    return 0;
}
```