#include <iostream>
//W ZADANIU NIE TRZEBA SPRAWDZAĆ CZY KWADRATY ZAWIERAJĄ ROZNE CYFRY ORAZ CZY NA GLOWNYCH PRZEKATNYCH SA ROZNE CYFRY.
using namespace std;
int wczytywanie(int tab[9][9]);
int spr_wiersze(int tab[9][9]);
int spr_kolumny(int tab[9][9]);
int spr_kwadrat(int tab[9][9]);
int t; // liczba testow
int tab[9][9]; // tabela, do ktorej wpiszemy liczby z sudoku.
int main()
{
cin >> t;
for(int test=0; test<t; test++)
{
while(1)
{
if(wczytywanie(tab)==0)
{
cout << "NIE" << endl;
break;
}
if(spr_wiersze(tab)==0)
{
cout << "NIE" << endl;
break;
}
if(spr_kolumny(tab)==0)
{
cout << "NIE"<< endl;
break;
}
if(spr_kwadrat(tab)==0)
{
cout << "NIE" << endl;
break;
}
else
{
cout << "TAK"<< endl;
break;
}
}
}
return 0;
}
int wczytywanie(int tab[9][9]) // wczytujac sprawdzamy, czy wszystkie liczby sa z przedzialu <1;9>
{
int logic=1;
for(int i=0; i<9; i++)
for(int j=0; j<9; j++)
{
cin >>tab[i][j];
if(tab[i][j]<1||tab[i][j]>9)
logic=0;
}
return logic;
}
int spr_wiersze(int tab[9][9])
{
int S;
for(int i=0; i<9; i++)
{
S=0;
for(int j=0; j<9; j++)
S+=tab[i][j];
if(S!=45)
return 0;
}
return 1;
}
int spr_kolumny(int tab[9][9])
{
int S;
for(int j=0; j<9; j++)
{
S=0;
for(int i=0; i<9; i++)
S+=tab[i][j];
if(S!=45)
return 0;
}
return 1;
}
int spr_kwadrat(int tab[9][9])
{
int S=0;
for(int I=0; I<3; I++)
for(int J=0; J<3; J++)
{
int j=0;
for(int i=0; i<3; i++)
{
S+=tab[3*I+i][3*J+j];
if(i==2)
{
j++;
i=-1;
}
if(j==3)
{
if(S!=45)
{
return 0;
}
else
{
i=3;
S=0;
}
}
}
}
return 1;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgovL1cgWkFEQU5JVSBOSUUgVFJaRUJBIFNQUkFXRFpBxIYgQ1pZIEtXQURSQVRZIFpBV0lFUkFKxIQgUk9aTkUgQ1lGUlkgT1JBWiBDWlkgTkEgR0xPV05ZQ0ggUFJaRUtBVE5ZQ0ggU0EgUk9aTkUgQ1lGUlkuCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCB3Y3p5dHl3YW5pZShpbnQgdGFiWzldWzldKTsKaW50IHNwcl93aWVyc3plKGludCB0YWJbOV1bOV0pOwppbnQgc3ByX2tvbHVtbnkoaW50IHRhYls5XVs5XSk7CmludCBzcHJfa3dhZHJhdChpbnQgdGFiWzldWzldKTsKaW50IHQ7IC8vIGxpY3piYSB0ZXN0b3cKaW50IHRhYls5XVs5XTsgLy8gdGFiZWxhLCBkbyBrdG9yZWogd3Bpc3plbXkgbGljemJ5IHogc3Vkb2t1LgppbnQgbWFpbigpCnsKICAgIGNpbiA+PiB0OwogICAgZm9yKGludCB0ZXN0PTA7IHRlc3Q8dDsgdGVzdCsrKQogICAgewogICAgICAgIHdoaWxlKDEpCiAgICAgICAgewogICAgICAgICAgICBpZih3Y3p5dHl3YW5pZSh0YWIpPT0wKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb3V0IDw8ICJOSUUiIDw8IGVuZGw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihzcHJfd2llcnN6ZSh0YWIpPT0wKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb3V0IDw8ICJOSUUiIDw8IGVuZGw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihzcHJfa29sdW1ueSh0YWIpPT0wKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb3V0IDw8ICJOSUUiPDwgZW5kbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKHNwcl9rd2FkcmF0KHRhYik9PTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgIk5JRSIgPDwgZW5kbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291dCA8PCAiVEFLIjw8IGVuZGw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9CgppbnQgd2N6eXR5d2FuaWUoaW50IHRhYls5XVs5XSkgLy8gd2N6eXR1amFjIHNwcmF3ZHphbXksIGN6eSB3c3p5c3RraWUgbGljemJ5IHNhIHogcHJ6ZWR6aWFsdSA8MTs5Pgp7CiAgICBpbnQgbG9naWM9MTsKICAgIGZvcihpbnQgaT0wOyBpPDk7IGkrKykKICAgICAgICBmb3IoaW50IGo9MDsgajw5OyBqKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4gPj50YWJbaV1bal07CiAgICAgICAgICAgIGlmKHRhYltpXVtqXTwxfHx0YWJbaV1bal0+OSkKICAgICAgICAgICAgICAgIGxvZ2ljPTA7CgogICAgICAgIH0KICAgIHJldHVybiBsb2dpYzsKfQppbnQgc3ByX3dpZXJzemUoaW50IHRhYls5XVs5XSkKewogICAgaW50IFM7CiAgICBmb3IoaW50IGk9MDsgaTw5OyBpKyspCiAgICB7CiAgICAgICAgUz0wOwogICAgICAgIGZvcihpbnQgaj0wOyBqPDk7IGorKykKICAgICAgICAgICAgUys9dGFiW2ldW2pdOwogICAgICAgIGlmKFMhPTQ1KQogICAgICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIHJldHVybiAxOwp9CmludCBzcHJfa29sdW1ueShpbnQgdGFiWzldWzldKQp7CiAgICBpbnQgUzsKICAgIGZvcihpbnQgaj0wOyBqPDk7IGorKykKICAgIHsKICAgICAgICBTPTA7CiAgICAgICAgZm9yKGludCBpPTA7IGk8OTsgaSsrKQogICAgICAgICAgICBTKz10YWJbaV1bal07CiAgICAgICAgaWYoUyE9NDUpCiAgICAgICAgICAgIHJldHVybiAwOwogICAgfQogICAgcmV0dXJuIDE7Cn0KCmludCBzcHJfa3dhZHJhdChpbnQgdGFiWzldWzldKQp7CiAgICBpbnQgUz0wOwogICAgZm9yKGludCBJPTA7IEk8MzsgSSsrKQogICAgICAgIGZvcihpbnQgSj0wOyBKPDM7IEorKykKICAgICAgICB7CiAgICAgICAgICAgIGludCBqPTA7CiAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPDM7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUys9dGFiWzMqSStpXVszKkoral07CiAgICAgICAgICAgICAgICBpZihpPT0yKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGorKzsKICAgICAgICAgICAgICAgICAgICBpPS0xOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoaj09MykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZihTIT00NSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpPTM7CiAgICAgICAgICAgICAgICAgICAgICAgIFM9MDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgcmV0dXJuIDE7Cn0K
NgoyIDUgMSA3IDYgOSAzIDQgOAo5IDggNiAzIDQgNSAyIDcgMQozIDcgNCA4IDIgMSA2IDkgNQo0IDIgOSA2IDMgOCA1IDEgNwo4IDYgMyA1IDEgNyA5IDIgNAo1IDEgNyA0IDkgMiA4IDMgNgo3IDkgNSAxIDggMyA0IDYgMgoxIDQgMiA5IDUgNiA3IDggMwo2IDMgOCAyIDcgNCAxIDUgOQoKMTAwIDUgMSA3IDYgOSAzIDQgOAo5IDggNiAzIDQgNSAyIDcgMQozIDcgNCA4IDIgMSA2IDkgNQo0IDIgOSA2IDMgOCA1IDEgNwo4IDYgMyA1IDEgNyA5IDIgNAo1IDEgNyA0IDkgMiA4IDMgNgo3IDkgNSAxIDggMyA0IDYgMgoxIDQgMiA5IDUgNiA3IDggMwo2IDMgOCAyIDcgNCAxIDUgOQoKNCAyIDkgNiAzIDggNSAxIDcKOCA2IDMgNSAxIDcgOSAyIDQKNSAxIDcgNCA5IDIgOCAzIDYKNyA5IDUgMSA4IDMgNCA2IDIKMSA0IDIgOSA1IDYgNyA4IDMKNiAzIDggMiA3IDQgMSA1IDkKMiA1IDEgNyA2IDkgMyA0IDgKOSA4IDYgMyA0IDUgMiA3IDEKMyA3IDQgOCAyIDEgNiA5IDUKCjIgNSAxIDcgNiA5IDMgNCA4CjkgOCA2IDMgNCA1IDIgNyAxCjMgNyA0IDggMiAxIDYgOSA1CjQgMiA5IDYgMyA4IDUgMSA3CjggNiAzIDUgMSA3IDkgMiA0CjUgMSA3IDQgOSAyIDggMyA2CjcgOSA1IDEgOCAzIDQgNiAyCjEgNCAyIDkgNSA2IDcgOCAzCjYgMyA4IDIgNyA0IDEgOSA1CgoyIDUgMSA3IDYgOSAzIDQgOAo5IDggNiAzIDQgNSAyIDcgMQozIDcgNCA4IDIgMSA2IDkgNQo0IDIgOSA2IDMgOCA1IDEgNwo4IDYgMyA1IDEgNyA5IDIgNAo1IDEgNyA0IDkgMiA4IDMgNgo3IDkgNSAxIDggMyA0IDYgMgoxIDQgMiA5IDggNiA3IDUgMwo2IDMgOCAyIDcgNCAxIDUgOQoKMSAzIDIgNSA3IDkgNCA2IDgKNCA5IDggMiA2IDEgMyA3IDUKNyA1IDYgMyA4IDQgMiAxIDkKNiA0IDMgMSA1IDggNyA5IDIKNSAyIDEgNyA5IDMgOCA0IDYKOSA4IDcgNCAyIDUgNiAzIDEKMiAxIDQgOSAzIDYgNSA4IDcKMyA2IDUgOCAxIDcgOSAyIDQKOCA3IDkgNiA0IDIgMSA1IDMK
6
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
1 3 2 5 7 9 4 6 8
4 9 8 2 6 1 3 7 5
7 5 6 3 8 4 2 1 9
6 4 3 1 5 8 7 9 2
5 2 1 7 9 3 8 4 6
9 8 7 4 2 5 6 3 1
2 1 4 9 3 6 5 8 7
3 6 5 8 1 7 9 2 4
8 7 9 6 4 2 1 5 3