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
Коментарі