atcoder#ARC095C. [ARC095E] Symmetric Grid

[ARC095E] Symmetric Grid

Score : 700700 points

Problem Statement

There is an H×WH \times W grid (HH vertical, WW horizontal), where each square contains a lowercase English letter. Specifically, the letter in the square at the ii-th row and jj-th column is equal to the jj-th character in the string SiS_i.

Snuke can apply the following operation to this grid any number of times:

  • Choose two different rows and swap them. Or, choose two different columns and swap them.

Snuke wants this grid to be symmetric. That is, for any 1iH1 \leq i \leq H and 1jW1 \leq j \leq W, the letter in the square at the ii-th row and jj-th column and the letter in the square at the (H+1i)(H + 1 - i)-th row and (W+1j)(W + 1 - j)-th column should be equal.

Determine if Snuke can achieve this objective.

Constraints

  • 1H121 \leq H \leq 12
  • 1W121 \leq W \leq 12
  • Si=W|S_i| = W
  • SiS_i consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

HH WW

S1S_1

S2S_2

::

SHS_H

Output

If Snuke can make the grid symmetric, print YES; if he cannot, print NO.

2 3
arc
rac
YES

If the second and third columns from the left are swapped, the grid becomes symmetric, as shown in the image below:

3 7
atcoder
regular
contest
NO
12 12
bimonigaloaf
faurwlkbleht
dexwimqxzxbb
lxdgyoifcxid
ydxiliocfdgx
nfoabgilamoi
ibxbdqmzxxwe
pqirylfrcrnf
wtehfkllbura
yfrnpflcrirq
wvcclwgiubrk
lkbrwgwuiccv
YES