12088. Майже рівні


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам надано \(N\) рядків \(S_1 ​, S_2 ​ ,…, S_N\) ​ довжиною \(M\) кожен, які складаються з малих літер англійського алфавіту. Тут \(S_i\) ​ попарно різні.

Визначте, чи можна переставити ці рядки, щоб отримати нову послідовність рядків \(T_1 ​,T_2 ​ ,…,T_N\) ​ так, що:

  • для всіх цілих \(i\) таких, що \(1≤i≤N−1\), можна змінити рівно один символ у \(T_i\) ​ іншою малою англійською літерою, щоб вона дорівнювала \(T_{i+1}\) ​.

Обмеження

  • \(2≤N≤8\)
  • \(1≤M≤5\)
  • \(S_i\) ​ — це рядок довжиною \(M\), що складається з малих літер англійського алфавіту. \((1≤i≤N)\)
  • \(S_i\) ​ попарно різні.

Формат вхідних даних

Перший рядок містить цілі числа \(N,M\).

Наступні  \(N\) рядків містять \(S_i\).

Формат вихідних даних

У вихідний потік виведіть відповідь: 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

Коментарі

Ще немає коментарів.