시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
20 초 256 MB 20 10 10 71.429%

문제

We found a dictionary of the Ancient Civilization Mayo (ACM) during excavation of the ruins. After analysis of the dictionary, we revealed they used a language that had not more than 26 letters. So one of us mapped each letter to a different English alphabet and typed all the words in the dictionary into a computer.

How the words are ordered in the dictionary, especially whether they are ordered lexicographically, is an interesting topic to many people. As a good programmer, you are requested to write a program to judge whether we can consider the words to be sorted in a lexicographical order.

Note: In a lexicographical order, a word always precedes other words it is a prefix of. For example, ab precedes abc, abde, and so on.

입력

The input consists of multiple datasets. Each dataset is formatted as follows:

n
string1
...
stringn

Each dataset consists of n+1 lines. The first line of each dataset contains an integer that indicates n (1 ≤ n ≤ 500). The i-th line of the following n lines contains stringi, which consists of up to 10 English lowercase letters.

The end of the input is 0, and this should not be processed.

출력

Print either yes or no in a line for each dataset, in the order of the input. If all words in the dataset can be considered to be ordered lexicographically, print yes. Otherwise, print no.

예제 입력

4
cba
cab
b
a
3
bca
ab
a
5
abc
acb
b
c
c
5
abc
acb
c
b
b
0

예제 출력

yes
no
yes
no

힌트