Hai xâu được gọi là tương đương nhau nếu ta có thể biến đổi đúng một ký tự của xâu này để đưa nó về bằng với xâu còn lại.
Một dãy xâu được gọi là dãy xâu đẹp nếu các cặp xâu liên tiếp trong dãy đều tương đương nhau.
Cho một dãy \(N\) xâu \(S_1\), \(S_2\),..., \(S_N\), mỗi xâu trong dãy có độ dài đúng bằng \(M\). Bạn hãy viết chương trình xác định xem liệu có tồn tại một cách tráo đổi vị trí các phần tử của dãy xâu đó để biến nó thành một dãy xâu đẹp hay không?
Input
- Dòng đầu chứa hai số nguyên dương \(N\) và \(M\) \(\left(2\le N\le 8, 1\le M\le 5\right)\).
- Dòng thứ \(i\) trong \(N\) dòng tiếp theo chứa xâu \(S_i\) gồm \(M\) chữ cái latin in thường. Dữ liệu đảm bảo không tồn tại cặp chỉ số \(i\ne j\) mà \(S_i=S_j\).
Output
- In ra
Yes
nếu tồn tại một cách tráo đổi vị trí các phần tử của dãy xâu \(S_1\), \(S_2\),..., \(S_N\) để biến nó thành một dãy xâu đẹp. Ngược lại, in raNo
.
Ví dụ
Sample input 01
4 4
bbed
abcd
abed
fbed
Sample output 01
Yes
Giải thích
Ta có thể sắp xếp dãy \(S\) lại thành \([\)abcd
, abed
, bbed
, fbed
\(]\). Các cặp xâu liên tiếp của dãy này đều tương đương nhau.
Sample input 02
2 5
abcde
abced
Sample output 02
No
Sample input 03
8 4
fast
face
cast
race
fact
rice
nice
case
Sample output 03
Yes