#arc095c. [arc095_c]Symmetric Grid

[arc095_c]Symmetric Grid

Problem Statement

There is an HtimesWH \\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 1leqileqH1 \\leq i \\leq H and 1leqjleqW1 \\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

  • 1leqHleq121 \\leq H \\leq 12
  • 1leqWleq121 \\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.


Sample Input 1

2 3
arc
rac

Sample Output 1

YES

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


Sample Input 2

3 7
atcoder
regular
contest

Sample Output 2

NO

Sample Input 3

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

Sample Output 3

YES