#include <iostream>
using namespace std;
//sprawdzenie wierszy i kolumn czy liczby sie powtarzaja
bool wiersze_kolumny(int t[9][9])
{
for(int i=0; i<9; i++)
{
for(int j=0; j<8; j++)
{
for(int m=j+1; m<9; m++)
{
if(t[i][j] == t[i][m] || t[j][i] == t[m][i])
{
return false;
}
}
}
}
return true;
}
bool maly_kwadrat(int t[9][9])
{
int w[9][2], suma, a, b;
//przepisanie wektora
for(int i=0; i<9; i++)
{
w[i][0] = t[0][i];
}
//petla d przeskakuje miedzy malymi kwadratami
for(int d=0; d<9; d++)
{
suma=0;
//zerowanie wektora zliczajacego liczby
for(int i=0; i<9; i++)
{
w[i][1] = 0;
}
//ustawienie wierszy i kolumn dla okreslonego kwadratu
switch(d)
{
case 0: a=0; b=0; break;
case 1: a=0; b=3; break;
case 2: a=0; b=6; break;
case 3: a=3; b=0; break;
case 4: a=3; b=3; break;
case 5: a=3; b=6; break;
case 6: a=6; b=0; break;
case 7: a=6; b=3; break;
case 8: a=6; b=6; break;
}
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
for(int m=0; m<9; m++)
{
//sprawdzenie czy wszystkie cyfry sa w kwadracie
if(t[i+a][j+b] == w[m][0] && w[m][1] == 0)
{
w[m][1] = 1;
suma++;
break;
}
}
}
}
if(suma!=9) return false;
}
return true;
}
int main()
{
int ile;
int tab[9][9];
cin>>ile;
//wczytanie tablicy
for(int p=0; p<ile; p++)
{
for(int i=0; i<9; i++)
for(int j=0; j<9; j++)
{
cin>>tab[i][j];
}
if(wiersze_kolumny(tab) == true)
{
if(maly_kwadrat(tab) == true) cout<<"TAK"<<endl;
else cout<<"NIE"<<endl;
}
else cout<<"NIE"<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vc3ByYXdkemVuaWUgd2llcnN6eSBpIGtvbHVtbiBjenkgbGljemJ5IHNpZSBwb3d0YXJ6YWphCmJvb2wgd2llcnN6ZV9rb2x1bW55KGludCB0WzldWzldKQp7CiAgICBmb3IoaW50IGk9MDsgaTw5OyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqPTA7IGo8ODsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgZm9yKGludCBtPWorMTsgbTw5OyBtKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHRbaV1bal0gPT0gdFtpXVttXSB8fCB0W2pdW2ldID09IHRbbV1baV0pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHRydWU7Cn0KCmJvb2wgbWFseV9rd2FkcmF0KGludCB0WzldWzldKQp7CiAgICBpbnQgd1s5XVsyXSwgc3VtYSwgYSwgYjsKCiAgICAvL3ByemVwaXNhbmllIHdla3RvcmEKICAgIGZvcihpbnQgaT0wOyBpPDk7IGkrKykKICAgIHsKICAgICAgICB3W2ldWzBdID0gdFswXVtpXTsKICAgIH0KCiAgICAvL3BldGxhIGQgcHJ6ZXNrYWt1amUgbWllZHp5IG1hbHltaSBrd2FkcmF0YW1pCiAgICBmb3IoaW50IGQ9MDsgZDw5OyBkKyspCiAgICB7CiAgICAgICAgc3VtYT0wOwoKICAgICAgICAvL3plcm93YW5pZSB3ZWt0b3JhIHpsaWN6YWphY2VnbyBsaWN6YnkKICAgICAgICBmb3IoaW50IGk9MDsgaTw5OyBpKyspCiAgICAgICAgewogICAgICAgICAgICB3W2ldWzFdID0gMDsKICAgICAgICB9CgogICAgICAgIC8vdXN0YXdpZW5pZSB3aWVyc3p5IGkga29sdW1uIGRsYSBva3Jlc2xvbmVnbyBrd2FkcmF0dQogICAgICAgIHN3aXRjaChkKQogICAgICAgIHsKICAgICAgICBjYXNlIDA6IGE9MDsgYj0wOyBicmVhazsKICAgICAgICBjYXNlIDE6IGE9MDsgYj0zOyBicmVhazsKICAgICAgICBjYXNlIDI6IGE9MDsgYj02OyBicmVhazsKICAgICAgICBjYXNlIDM6IGE9MzsgYj0wOyBicmVhazsKICAgICAgICBjYXNlIDQ6IGE9MzsgYj0zOyBicmVhazsKICAgICAgICBjYXNlIDU6IGE9MzsgYj02OyBicmVhazsKICAgICAgICBjYXNlIDY6IGE9NjsgYj0wOyBicmVhazsKICAgICAgICBjYXNlIDc6IGE9NjsgYj0zOyBicmVhazsKICAgICAgICBjYXNlIDg6IGE9NjsgYj02OyBicmVhazsKICAgICAgICB9CgogICAgICAgIGZvcihpbnQgaT0wOyBpPDM7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPDM7IGorKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yKGludCBtPTA7IG08OTsgbSsrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIC8vc3ByYXdkemVuaWUgY3p5IHdzenlzdGtpZSBjeWZyeSBzYSB3IGt3YWRyYWNpZQogICAgICAgICAgICAgICAgICAgIGlmKHRbaSthXVtqK2JdID09IHdbbV1bMF0gJiYgd1ttXVsxXSA9PSAwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgd1ttXVsxXSA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIHN1bWErKzsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKHN1bWEhPTkpIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwp9CgoKaW50IG1haW4oKQp7CiAgICBpbnQgaWxlOwogICAgaW50IHRhYls5XVs5XTsKCiAgICBjaW4+PmlsZTsKCiAgICAvL3djenl0YW5pZSB0YWJsaWN5CiAgICBmb3IoaW50IHA9MDsgcDxpbGU7IHArKykKICAgIHsKICAgICAgICBmb3IoaW50IGk9MDsgaTw5OyBpKyspCiAgICAgICAgZm9yKGludCBqPTA7IGo8OTsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj50YWJbaV1bal07CiAgICAgICAgfQoKICAgICAgICBpZih3aWVyc3plX2tvbHVtbnkodGFiKSA9PSB0cnVlKQogICAgICAgIHsKICAgICAgICAgICAgaWYobWFseV9rd2FkcmF0KHRhYikgPT0gdHJ1ZSkgY291dDw8IlRBSyI8PGVuZGw7CiAgICAgICAgICAgIGVsc2UgY291dDw8Ik5JRSI8PGVuZGw7CiAgICAgICAgfQogICAgICAgIGVsc2UgY291dDw8Ik5JRSI8PGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==
OQoyIDUgMSA3IDYgOSAzIDQgOAo5IDggNiAzIDQgNSAyIDcgMQozIDcgNCA4IDIgMSA2IDkgNQo0IDIgOSA2IDMgOCA1IDEgNwo4IDYgMyA1IDEgNyA5IDIgNAo1IDEgNyA0IDkgMiA4IDMgNgo3IDkgNSAxIDggMyA0IDYgMgoxIDQgMiA5IDUgNiA3IDggMwo2IDMgOCAyIDcgNCAxIDUgOQoKMTAwIDUgMSA3IDYgOSAzIDQgOAo5IDggNiAzIDQgNSAyIDcgMQozIDcgNCA4IDIgMSA2IDkgNQo0IDIgOSA2IDMgOCA1IDEgNwo4IDYgMyA1IDEgNyA5IDIgNAo1IDEgNyA0IDkgMiA4IDMgNgo3IDkgNSAxIDggMyA0IDYgMgoxIDQgMiA5IDUgNiA3IDggMwo2IDMgOCAyIDcgNCAxIDUgOQoKNCAyIDkgNiAzIDggNSAxIDcKOCA2IDMgNSAxIDcgOSAyIDQKNSAxIDcgNCA5IDIgOCAzIDYKNyA5IDUgMSA4IDMgNCA2IDIKMSA0IDIgOSA1IDYgNyA4IDMKNiAzIDggMiA3IDQgMSA1IDkKMiA1IDEgNyA2IDkgMyA0IDgKOSA4IDYgMyA0IDUgMiA3IDEKMyA3IDQgOCAyIDEgNiA5IDUKCjIgNSAxIDcgNiA5IDMgNCA4CjkgOCA2IDMgNCA1IDIgNyAxCjMgNyA0IDggMiAxIDYgOSA1CjQgMiA5IDYgMyA4IDUgMSA3CjggNiAzIDUgMSA3IDkgMiA0CjUgMSA3IDQgOSAyIDggMyA2CjcgOSA1IDEgOCAzIDQgNiAyCjEgNCAyIDkgNSA2IDcgOCAzCjYgMyA4IDIgNyA0IDEgOSA1CgoyIDUgMSA3IDYgOSAzIDQgOAo5IDggNiAzIDQgNSAyIDcgMQozIDcgNCA4IDIgMSA2IDkgNQo0IDIgOSA2IDMgOCA1IDEgNwo4IDYgMyA1IDEgNyA5IDIgNAo1IDEgNyA0IDkgMiA4IDMgNgo3IDkgNSAxIDggMyA0IDYgMgoxIDQgMiA5IDggNiA3IDUgMwo2IDMgOCAyIDcgNCAxIDUgOQoKOCAxIDYgOCAxIDYgOCAxIDYKMyA1IDcgMyA1IDcgMyA1IDcKNCA5IDIgNCA5IDIgNCA5IDIKOCAxIDYgOCAxIDYgOCAxIDYKMyA1IDcgMyA1IDcgMyA1IDcKNCA5IDIgNCA5IDIgNCA5IDIKOCAxIDYgOCAxIDYgOCAxIDYKMyA1IDcgMyA1IDcgMyA1IDcKNCA5IDIgNCA5IDIgNCA5IDIKCjIgNSAwIDcgNiAxMCAzIDQgOAoxMCA4IDYgMyA0IDUgMiA3IDAKMyA3IDQgOCAyIDAgNiAxMCA1CjQgMiAxMCA2IDMgOCA1IDAgNwo4IDYgMyA1IDAgNyAxMCAyIDQKNSAwIDcgNCAxMCAyIDggMyA2CjcgMTAgNSAwIDggMyA0IDYgMgowIDQgMiAxMCA1IDYgNyA4IDMKNiAzIDggMiA3IDQgMCA1IDEwCgoxIDIgMyA0IDUgNiA3IDggOQoyIDMgNCA1IDYgNyA4IDkgMQozIDQgNSA2IDcgOCA5IDEgMgo0IDUgNiA3IDggOSAxIDIgMwo1IDYgNyA4IDkgMSAyIDMgNAo2IDcgOCA5IDEgMiAzIDQgNQo3IDggOSAxIDIgMyA0IDUgNgo4IDkgMSAyIDMgNCA1IDYgNwo5IDEgMiAzIDQgNSA2IDcgOAoKNSA1IDUgNSA1IDUgNSA1IDUKNSA1IDUgNSA1IDUgNSA1IDUKNSA1IDUgNSA1IDUgNSA1IDUKNSA1IDUgNSA1IDUgNSA1IDUKNSA1IDUgNSA1IDUgNSA1IDUKNSA1IDUgNSA1IDUgNSA1IDUKNSA1IDUgNSA1IDUgNSA1IDUKNSA1IDUgNSA1IDUgNSA1IDUKNSA1IDUgNSA1IDUgNSA1IDU=
9
2 5 1 7 6 9 3 4 8
9 8 6 3 4 5 2 7 1
3 7 4 8 2 1 6 9 5
4 2 9 6 3 8 5 1 7
8 6 3 5 1 7 9 2 4
5 1 7 4 9 2 8 3 6
7 9 5 1 8 3 4 6 2
1 4 2 9 5 6 7 8 3
6 3 8 2 7 4 1 5 9
100 5 1 7 6 9 3 4 8
9 8 6 3 4 5 2 7 1
3 7 4 8 2 1 6 9 5
4 2 9 6 3 8 5 1 7
8 6 3 5 1 7 9 2 4
5 1 7 4 9 2 8 3 6
7 9 5 1 8 3 4 6 2
1 4 2 9 5 6 7 8 3
6 3 8 2 7 4 1 5 9
4 2 9 6 3 8 5 1 7
8 6 3 5 1 7 9 2 4
5 1 7 4 9 2 8 3 6
7 9 5 1 8 3 4 6 2
1 4 2 9 5 6 7 8 3
6 3 8 2 7 4 1 5 9
2 5 1 7 6 9 3 4 8
9 8 6 3 4 5 2 7 1
3 7 4 8 2 1 6 9 5
2 5 1 7 6 9 3 4 8
9 8 6 3 4 5 2 7 1
3 7 4 8 2 1 6 9 5
4 2 9 6 3 8 5 1 7
8 6 3 5 1 7 9 2 4
5 1 7 4 9 2 8 3 6
7 9 5 1 8 3 4 6 2
1 4 2 9 5 6 7 8 3
6 3 8 2 7 4 1 9 5
2 5 1 7 6 9 3 4 8
9 8 6 3 4 5 2 7 1
3 7 4 8 2 1 6 9 5
4 2 9 6 3 8 5 1 7
8 6 3 5 1 7 9 2 4
5 1 7 4 9 2 8 3 6
7 9 5 1 8 3 4 6 2
1 4 2 9 8 6 7 5 3
6 3 8 2 7 4 1 5 9
8 1 6 8 1 6 8 1 6
3 5 7 3 5 7 3 5 7
4 9 2 4 9 2 4 9 2
8 1 6 8 1 6 8 1 6
3 5 7 3 5 7 3 5 7
4 9 2 4 9 2 4 9 2
8 1 6 8 1 6 8 1 6
3 5 7 3 5 7 3 5 7
4 9 2 4 9 2 4 9 2
2 5 0 7 6 10 3 4 8
10 8 6 3 4 5 2 7 0
3 7 4 8 2 0 6 10 5
4 2 10 6 3 8 5 0 7
8 6 3 5 0 7 10 2 4
5 0 7 4 10 2 8 3 6
7 10 5 0 8 3 4 6 2
0 4 2 10 5 6 7 8 3
6 3 8 2 7 4 0 5 10
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 1
3 4 5 6 7 8 9 1 2
4 5 6 7 8 9 1 2 3
5 6 7 8 9 1 2 3 4
6 7 8 9 1 2 3 4 5
7 8 9 1 2 3 4 5 6
8 9 1 2 3 4 5 6 7
9 1 2 3 4 5 6 7 8
5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5