eolymp
bolt
Try our new interface for solving problems
Problems

Dictionary

Dictionary

Time limit 1 second
Memory limit 128 MiB

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.

Input data

Consists of multiple datasets. Each dataset is formatted as follows:

n

string[1]

. . .

string[n]

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

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

Output data

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".

Examples

Input example #1
4
cba
cab
b
a
3
bca
ab
a
5
abc
acb
b
c
c
5
abc
acb
c
b
b
0
Output example #1
yes
no
yes
no
Source 2012 Japanese Alumni Group Practice Contest Asia Regional, AtCoder, November 4; 2013 Petrozavodsk Winter Training Camp, January 26, Problem C