스도쿠 변형

시간 제한1초메모리 제한128 MB

문제

상근이는 매일 아침 신문에 실린 스도쿠 퍼즐을 풀며 하루를 시작한다. 어느 날, 퍼즐을 풀다가 이상한 점을 눈치챘다. 지금 풀고 있는 퍼즐이 어제 풀었던 퍼즐을 90도 회전시킨 것이었기 때문이다. 상근이는 엄청난 배신감을 느꼈다. 물론 퍼즐을 풀기 시작할 때는 이것이 어제 풀었던 퍼즐인지 알 수 없지만, 숫자를 채워 나가다 보면 알게 된다.

상근이는 매우 화가 나 매일 밤을 술로 지새웠고, 더 이상 신문사의 횡포에 당할 수 없다고 생각했다. 그래서 오늘 퍼즐이 어제 퍼즐을 간단한 연산을 통해 만든 것인지 아닌지를 확인해 보려고 한다.

스도쿠 보드는 $9 \times 9$ 개의 칸으로 이루어져 있다. 또한 $3 \times 3$ 개의 칸이 하나로 묶여 9개의 구역(region)을 이룬다. 처음에는 칸의 일부만 1과 9 사이의 숫자로 채워져 있고, 나머지 칸은 모두 비어 있다. 퍼즐의 목표는 비어 있는 칸을 1부터 9까지의 숫자로 채워서, 모든 행, 모든 열, 모든 구역에 1부터 9까지의 숫자가 딱 한 번씩만 등장하게 하는 것이다. 올바른 스도쿠 퍼즐은 비어 있는 칸을 채우는 방법이 항상 한 가지뿐이다.

허용되는 간단한 연산은 아래와 같다.

  1. 퍼즐 전체를 시계 방향이나 반시계 방향으로 회전시킨다.
  2. $3 \times 9$ 크기의 열 세그먼트를 교환한다.
  3. $9 \times 3$ 크기의 행 세그먼트를 교환한다.
  4. 행 또는 열 전체를 교환한다.
  5. 1부터 9까지의 숫자로 이루어진 순열 $f$ 를 모든 칸에 적용한다. 즉, 모든 칸의 값 $x$ 를 $f(x)$ 로 바꾼다.

위의 모든 연산은 스도쿠의 정답(완성된 판)에 적용되며, 변환하기 전에 풀 수 있었던 스도쿠는 변환한 뒤에도 풀 수 있다.

입력

첫째 줄에 테스트 케이스의 개수 $N$ 이 주어진다. ($0 \le N \le 50$)

각 테스트 케이스의 처음 9개 줄은 어제 퍼즐의 정답이며, 다음 9개 줄은 오늘 퍼즐이다. 비어 있는 칸은 0으로 주어진다.

각 테스트 케이스의 사이에는 빈 줄이 하나씩 주어진다. 어제 퍼즐은 항상 올바른 스도쿠이며, 오늘 퍼즐의 정답도 항상 한 가지이다.

출력

각 테스트 케이스에 대해서, 오늘 퍼즐이 어제 퍼즐의 변형이면 Yes 를, 아니면 No 를 출력한다.