atcoder#ABC302C. [ABC302C] Almost Equal

[ABC302C] Almost Equal

Score : 250250 points

Problem Statement

You are given NN strings S1,S2,,SNS_1,S_2,\dots,S_N, each of length MM, consisting of lowercase English letter. Here, SiS_i are pairwise distinct.

Determine if one can rearrange these strings to obtain a new sequence of strings T1,T2,,TNT_1,T_2,\dots,T_N such that:

  • for all integers ii such that 1iN11 \le i \le N-1, one can alter exactly one character of TiT_i to another lowercase English letter to make it equal to Ti+1T_{i+1}.

Constraints

  • 2N82 \le N \le 8
  • 1M51 \le M \le 5
  • SiS_i is a string of length MM consisting of lowercase English letters. (1iN)(1 \le i \le N)
  • SiS_i are pairwise distinct.

Input

The input is given from Standard Input in the following format:

NN MM

S1S_1

S2S_2

\vdots

SNS_N

Output

Print Yes if one can obtain a conforming sequence; print No otherwise.

4 4
bbed
abcd
abed
fbed
Yes

One can rearrange them in this order: abcd, abed, bbed, fbed. This sequence satisfies the condition.

2 5
abcde
abced
No

No matter how the strings are rearranged, the condition is never satisfied.

8 4
fast
face
cast
race
fact
rice
nice
case
Yes