import java.util.List;
import java.util.Scanner;
class Sudoku {
static Scanner scanner
= new Scanner
(System.
in); static int operationCount;
static SudokuTable sudokuTable;
public static void main
(String argc
[]) { operationCount = scanner.nextInt();
scanner.nextLine();
for (int iter = 1; iter <= operationCount; ++iter) {
for (int iter2 = 0; iter2 < 9; ++iter2) {
sudokuTableLines[iter2] = scanner.nextLine();
}
sudokuTable = new SudokuTable(sudokuTableLines);
System.
out.
println(sudokuTable.
checkValidityOfSudokuTable()); if (iter != operationCount)
scanner.nextLine();
}
}
private static class SudokuTable {
private int[][] sudokuTableValues = new int[9][9];
// private int[][] smallSquares = new int[9][9];
public SudokuTable
(String[] rows
) { int row = 0;
int column = 0;
column = 0;
for (String s1
: s.
split(" ")) { sudokuTableValues
[row
][column
] = Integer.
parseInt(s1
); ++column;
}
++row;
}
}
public String checkValidityOfSudokuTable
() { for (int iter1 = 1; iter1 <= 8; iter1 = iter1 + 3)
for (int iter2 = 1; iter2 <= 8; iter2 = iter2 + 3)
if (!checkValidityOfSmallSquareWithMiddleIn(iter1, iter2))
return "NIE";
for (int[] row : sudokuTableValues)
if (!checkValidityOfRow(row))
return "NIE";
for (int[] row : transposeMatrix(sudokuTableValues))
if (!checkValidityOfRow(row))
return "NIE";
return "TAK";
}
private boolean checkValidityOfSmallSquareWithMiddleIn(int middleRowIndex, int middleColumnIndex) {
int[] foundNumbers = new int[9];
int iter = 0;
for (int row = middleRowIndex - 1; row <= middleRowIndex + 1; ++row)
for (int column = middleColumnIndex - 1; column <= middleColumnIndex + 1; ++column) {
foundNumbers[iter] = sudokuTableValues[row][column];
++iter;
}
return checkIfArrayContainNumbersFromOneToNine(foundNumbers);
}
private boolean checkValidityOfRow(int row[]) {
return checkIfArrayContainNumbersFromOneToNine(row);
}
private boolean checkIfArrayContainNumbersFromOneToNine(int[] foundNumbers) {
boolean[] checkedNumber = new boolean[9];
for (int i : foundNumbers) {
if ((i < 1) || (i > 9))
return false;
checkedNumber[i - 1] = true;
}
for (boolean b : checkedNumber) {
if (!b)
return false;
}
return true;
}
private static int[][] transposeMatrix(int[][] m) {
int[][] temp = new int[m[0].length][m.length];
for (int i = 0; i < m.length; i++)
for (int j = 0; j < m[0].length; j++)
temp[j][i] = m[i][j];
return temp;
}
}
}