배열

아직 제출이 없습니다시간 제한4초메모리 제한128 MB

문제

서로 다른 정수로 채워진 n×mn \times m 크기의 배열이 있습니다. 이 배열에는 다음 두 가지 연산을 적용할 수 있습니다.

  1. 두 행을 서로 맞바꾼다.
  2. 두 열을 서로 맞바꾼다.

어떤 배열에 위 연산들을 여러 번 적용하여 다른 배열을 만들 수 있으면, 두 배열이 서로 닮았다고 합니다.

여러 쌍의 배열이 주어질 때, 각 쌍의 두 배열이 서로 닮았는지 판별하는 프로그램을 작성하세요.

입력

첫째 줄에 배열 쌍의 개수 tt (1t101 \le t \le 10)가 주어집니다. 이어서 각 배열 쌍의 정보가 차례로 주어집니다.

각 쌍의 정보는 먼저 두 정수 nnmm (1n,m10001 \le n, m \le 1000)이 공백 하나로 구분되어 한 줄에 주어지는 것으로 시작합니다. 여기서 nnmm은 두 배열이 공통으로 가지는 행의 수와 열의 수입니다.

이어지는 nn개의 줄에는 첫 번째 배열이 주어집니다. 그중 ii번째 줄에는 첫 번째 배열의 ii번째 행에 있는 mm개의 정수 aija_{ij} (106aij106-10^6 \le a_{ij} \le 10^6)가 공백 하나로 구분되어 주어집니다.

그다음 nn개의 줄에는 두 번째 배열이 같은 형식으로 주어지며, 그 ii번째 줄의 정수들을 bijb_{ij}라고 합니다.

한 배열 안에 등장하는 모든 수는 서로 다릅니다.

출력

각 배열 쌍마다 한 줄씩, 모두 tt개의 줄을 출력합니다. kk번째 줄에는 kk번째 쌍의 두 배열이 서로 닮았으면 TAK을, 그렇지 않으면 NIE를 출력합니다. (TAKNIE는 각각 "예"와 "아니오"를 뜻합니다.)

힌트

행이나 열을 맞바꾸는 연산은 "같은 행에 있다" 또는 "같은 열에 있다"라는 관계를 그대로 보존합니다. 따라서 두 배열이 닮으려면, 먼저 두 배열에 등장하는 값들의 집합이 같아야 하고, 한 배열에서 같은 행(또는 같은 열)에 있는 값들은 다른 배열에서도 모두 같은 행(또는 같은 열)에 있어야 합니다. 이 조건을 이용해 행끼리, 열끼리의 대응 관계가 모순 없이 정해지는지 확인하면 닮음 여부를 판별할 수 있습니다.