#ATarc095c. [ARC095E] Symmetric Grid

[ARC095E] Symmetric Grid

题目描述

有一个 HHWW 列的网格,每个格子里写有一个小写英文字母。具体来说,从上往下第 ii 行,从左往右第 jj 列的格子中写的字母等于字符串 SiS_i 的第 jj 个字符。

すぬけ君可以对这个网格进行任意次数如下操作:

  • 选择两行并交换它们的位置,或者选择两列并交换它们的位置。

すぬけ君希望使这个网格变为点对称。也就是说,对于任意的 1iH1 \leq i \leq H1jW1 \leq j \leq W,从上往下第 ii 行、从左往右第 jj 列的格子中的字母,和从上往下第 H+1iH+1-i 行、从左往右第 W+1jW+1-j 列的格子中的字母相同。

请判断すぬけ君是否有可能通过上述操作实现目标。

输入格式

输入通过标准输入给出,格式如下:

HH WW
S1S_1
S2S_2
\vdots
SHS_H

输出格式

如果可以使网格变为点对称,输出 YES;否则输出 NO

样例 1

输入

2 3
arc
rac

输出

YES

样例 2

输入

3 7
atcoder
regular
contest

输出

NO

样例 3

输入

12 12
bimonigaloaf
faurwlkbleht
dexwimqxzxbb
lxdgyoifcxid
ydxiliocfdgx
nfoabgilamoi
ibxbdqmzxxwe
pqirylfrcrnf
wtehfkllbura
yfrnpflcrirq
wvcclwgiubrk
lkbrwgwuiccv

输出

YES

说明/提示

限制

  • 1H121 \leq H \leq 12
  • 1W121 \leq W \leq 12
  • Si=W|S_i| = W
  • SiS_i 只包含小写英文字母

样例解释 1

如下面的图片所示,将第 2 列和第 3 列交换后,网格可以变为点对称。

由 ChatGPT 4.1 翻译