#agc006e. [agc006_e]Rotate 3x3

[agc006_e]Rotate 3x3

问题描述

我们有一个 33NN 列的网格。网格中第 ii 行第 jj 列的单元格表示为 (ii, jj)。最初,每个单元格 (ii, jj) 包含整数 i+3j3i+3j-3

N=5N=5 的网格

Snuke可以进行以下任意次操作之一:

  • 选择一个 3×33×3 的子矩形网格。现在,子矩形网格内的整数摆放发生 180°180° 旋转。

操作序列示例(每个选定的子矩形以蓝色显示)

Snuke的目标是通过操作网格,使得每个单元格 (ii, jj) 包含整数 ai,ja_{i,j}。确定是否可以实现这个目标。

约束条件

  • 5N1055≤N≤10^5
  • 1ai,j3N1≤a_{i,j}≤3N
  • 所有 ai,ja_{i,j} 互不相同。

输入

输入的格式如下所示,从标准输入给出:

NN a1,1a_{1,1} a1,2a_{1,2} ...... a1,Na_{1,N} a2,1a_{2,1} a2,2a_{2,2} ...... a2,Na_{2,N} a3,1a_{3,1} a3,2a_{3,2} ...... a3,Na_{3,N}

输出

如果可以达到 Snuke 的目标,输出 Yes。否则,输出 No


样例输入 1

5
9 6 15 12 1
8 5 14 11 2
7 4 13 10 3

样例输出 1

Yes

该样例对应于题目描述中的图示。


样例输入 2

5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

样例输出 2

No

样例输入 3

5
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15

样例输出 3

Yes

通过初始整数的摆放方式已经达到了目标。


样例输入 4

6
15 10 3 4 9 16
14 11 2 5 8 17
13 12 1 6 7 18

样例输出 4

Yes

样例输入 5

7
21 12 1 16 13 6 7
20 11 2 17 14 5 8
19 10 3 18 15 4 9

样例输出 5

No