CSES - HIIT Open 2016 - Judge correctness
  • Time limit: 3.00 s
  • Memory limit: 256 MB

In our programming course, our students have written programs that are supposed to solve the following problem: given an integer n and an n \times n table A = \begin{bmatrix} a_{11} & a_{12} & a_{13} & \dots & a_{1n} \\ a_{21} & a_{22} & a_{23} & \dots & a_{2n} \\ \dots \\ a_{n1} & a_{n2} & a_{n3} & \dots & a_{nn} \end{bmatrix}, they should construct an n \times n table X = \begin{bmatrix} x_{11} & x_{12} & x_{13} & \dots & x_{1n} \\ x_{21} & x_{22} & x_{23} & \dots & x_{2n} \\ \dots \\ x_{n1} & x_{n2} & x_{n3} & \dots & x_{nn} \end{bmatrix} such that x_{ij} = \sum_{k = 1}^n a_{ik} a_{jk} \bmod 64. Put otherwise, element (i,j) in table X should be the dot product of rows i and j in table A, modulo 64.

Now your task is to quickly verify that the students have really solved the problem correctly. You will get n, table A, and table X, and you need to check if the solution is correct.

Input

The first line of input contains one integer, t, which is the number of test cases. Each case consists of:

  • one line with integer n
  • table A: n lines with n characters
  • table X: n lines with n characters

The tables are encoded as strings as follows:

  • each character corresponds to one element,
  • characters A to Z correspond to values 0 to 25,
  • characters a to z correspond to values 26 to 51,
  • characters 0 to 9 correspond to values 52 to 61,
  • character + corresponds to value 62,
  • character / corresponds to value 63.

As everything is calculated modulo 64, we only need to store values 0–63.

Output

For each case, you will need to output one line: either 1 if X is correct, or 0 if X is not correct.

Limits

  • 1 \le t \le 500
  • 1 \le n \le 5000
  • 0 \le a_{i,j} \le 63
  • 0 \le x_{i,j} \le 63
  • the sum of all n values is at most 5000

Example

Input:

3
2
BC
DE
FL
LZ
2
BC
DE
FL
LF
4
m2ct
4k2u
MY0u
hrQW
BmeW
m48Y
e8kI
WYIe

Output:

1
0
1

Here we have three test cases (t = 3). In the first case we have n=2 and A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad X = \begin{bmatrix} 5 & 11 \\ 11 & 25 \end{bmatrix}.Here all values are correct. For example, 1\cdot3 + 2\cdot4 = 11. In the second test case the last element of X is incorrect.