#include <iostream>
using namespace std;
int main() {
int liczba[25];
int n, t;
int deszyfr;
cin >> n;
bool war = false;
bool brak127 = false, brak131 = false, brak137 = false, brak139 = false, brak149 = false;
for(int i = 0; i < n; i++)
{
cin >> t;
if(t > 24) war = true;
for(int j = 0; j < t; j++)
{
cin >> liczba[j];
if(liczba[j] % 127 > 90 || liczba[j] % 127 < 65)
{
brak127 = true;
}
if(liczba[j] % 131 > 90 || liczba[j] % 131 < 65)
{
brak131 = true;
}
if(liczba[j] % 137 > 90 || liczba[j] % 137 < 65)
{
brak137 = true;
}
if(liczba[j] % 139 > 90 || liczba[j] % 139 < 65)
{
brak139 = true;
}
if(liczba[j] % 149 > 90 || liczba[j] % 149 < 65)
{
brak149 = true;
}
}
if(!brak127) deszyfr = 127;
else if(!brak131) deszyfr = 131;
else if(!brak137) deszyfr = 137;
else if(!brak139) deszyfr = 139;
else if(!brak149) deszyfr = 149;
else deszyfr = 0;
if(deszyfr != 0) cout << deszyfr << " ";
if(deszyfr == 0 || war)
{
cout << "NIECZYTELNE";
}
else
{
for(int j = 0; j < t; j++)
{
switch(deszyfr)
{
case 127 :
{
cout << char(liczba[j] % 127);
break;
}
case 131 :
{
cout << char(liczba[j] % 131);
break;
}
case 137 :
{
cout << char(liczba[j] % 137);
break;
}
case 139 :
{
cout << char(liczba[j] % 139);
break;
}
case 149 :
{
cout << char(liczba[j] % 149);
break;
}
}
}
}
cout << endl;
brak127 = false;
brak131 = false;
brak137 = false;
brak139 = false;
brak149 = false;
war = false;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpIHsKICAgIGludCBsaWN6YmFbMjVdOwogICAgaW50IG4sIHQ7CiAgICBpbnQgZGVzenlmcjsKICAgIGNpbiA+PiBuOwogICAgYm9vbCB3YXIgPSBmYWxzZTsKICAgIGJvb2wgYnJhazEyNyA9IGZhbHNlLCBicmFrMTMxID0gZmFsc2UsIGJyYWsxMzcgPSBmYWxzZSwgYnJhazEzOSA9IGZhbHNlLCBicmFrMTQ5ID0gZmFsc2U7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiB0OwogICAgICAgIGlmKHQgPiAyNCkgd2FyID0gdHJ1ZTsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgdDsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IGxpY3piYVtqXTsKICAgICAgICAgICAgaWYobGljemJhW2pdICUgMTI3ID4gOTAgfHwgbGljemJhW2pdICUgMTI3IDwgNjUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGJyYWsxMjcgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGxpY3piYVtqXSAlIDEzMSA+IDkwIHx8IGxpY3piYVtqXSAlIDEzMSA8IDY1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBicmFrMTMxID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihsaWN6YmFbal0gJSAxMzcgPiA5MCB8fCBsaWN6YmFbal0gJSAxMzcgPCA2NSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYnJhazEzNyA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYobGljemJhW2pdICUgMTM5ID4gOTAgfHwgbGljemJhW2pdICUgMTM5IDwgNjUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGJyYWsxMzkgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGxpY3piYVtqXSAlIDE0OSA+IDkwIHx8IGxpY3piYVtqXSAlIDE0OSA8IDY1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBicmFrMTQ5ID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAgICAgaWYoIWJyYWsxMjcpIGRlc3p5ZnIgPSAxMjc7CiAgICAgICAgICAgIGVsc2UgaWYoIWJyYWsxMzEpIGRlc3p5ZnIgPSAxMzE7CiAgICAgICAgICAgIGVsc2UgaWYoIWJyYWsxMzcpIGRlc3p5ZnIgPSAxMzc7CiAgICAgICAgICAgIGVsc2UgaWYoIWJyYWsxMzkpIGRlc3p5ZnIgPSAxMzk7CiAgICAgICAgICAgIGVsc2UgaWYoIWJyYWsxNDkpIGRlc3p5ZnIgPSAxNDk7CiAgICAgICAgICAgIGVsc2UgZGVzenlmciA9IDA7CiAgICAgICAgaWYoZGVzenlmciAhPSAwKSBjb3V0IDw8IGRlc3p5ZnIgPDwgIiAiOwogICAgICAgIGlmKGRlc3p5ZnIgPT0gMCB8fCB3YXIpCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8ICJOSUVDWllURUxORSI7CiAgICAgICAgfQogICAgICAgIGVsc2UgCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgdDsgaisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGRlc3p5ZnIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDEyNyA6CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgY2hhcihsaWN6YmFbal0gJSAxMjcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMzEgOgogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0IDw8IGNoYXIobGljemJhW2pdICUgMTMxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTM3IDoKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY291dCA8PCBjaGFyKGxpY3piYVtqXSAlIDEzNyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDEzOSA6CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgY2hhcihsaWN6YmFbal0gJSAxMzkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxNDkgOgogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0IDw8IGNoYXIobGljemJhW2pdICUgMTQ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgICAgICBicmFrMTI3ID0gZmFsc2U7CiAgICAgICAgYnJhazEzMSA9IGZhbHNlOwogICAgICAgIGJyYWsxMzcgPSBmYWxzZTsKICAgICAgICBicmFrMTM5ID0gZmFsc2U7CiAgICAgICAgYnJhazE0OSA9IGZhbHNlOwogICAgICAgIHdhciA9IGZhbHNlOwogICAgfQp9