atcoder#ABC302C. [ABC302C] Almost Equal

[ABC302C] Almost Equal

配点 : 250250

問題文

英小文字からなる長さ MM の文字列 NNS1,S2,,SNS_1,S_2,\dots,S_N が与えられます。ここで、SiS_i は互いに異なります。

これらを並び替えた文字列の列 T1,T2,,TNT_1,T_2,\dots,T_N であって、以下の条件を満たすものが存在するか判定してください。

  • 1iN11 \le i \le N-1 を満たす全ての整数 ii に対して、TiT_i11 文字だけ別の英小文字に変えて Ti+1T_{i+1} にすることが出来る。

制約

  • 2N82 \le N \le 8
  • 1M51 \le M \le 5
  • SiS_i は英小文字からなる長さ MM の文字列である。(1iN)(1 \le i \le N)
  • SiS_i は互いに異なる。

入力

入力は以下の形式で標準入力から与えられる。

NN MM

S1S_1

S2S_2

\vdots

SNS_N

出力

問題文の条件を満たす列が存在するならば Yes を、そうでないならば No を出力せよ。

4 4
bbed
abcd
abed
fbed
Yes

abcd , abed , bbed , fbed の順に並び替えると条件を満たします。

2 5
abcde
abced
No

どのように並び替えても条件を満たすことは出来ません。

8 4
fast
face
cast
race
fact
rice
nice
case
Yes