You are given n strings. Each string consists of lowercase English letters. Rearrange (reorder) the given strings in such a way that for every string, all strings that are placed before it are its substrings.

String a is a substring of string b if it is possible to choose several consecutive letters in b in such a way that they form a. For example, string "for" is contained as a substring in strings "codeforces", "for" and "therefore", but is not contained as a substring in strings "four", "fofo" and "rof".

Input

The first line contains an integer n (1 ≤ n ≤ 100) — the number of strings.

The next n lines contain the given strings. The number of letters in each string is from 1 to 100, inclusive. Each string consists of lowercase English letters.

Some strings might be equal.

Output

If it is impossible to reorder n given strings in required order, print "NO" (without quotes).

Otherwise print "YES" (without quotes) and n given strings in required order.

Examples

Input

5
a
aba
abacaba
ba
aba


Output

YES
a
ba
aba
aba
abacaba


Input

5
a
abacaba
ba
aba
abab


Output

NO


Input

3
qwerty
qwerty
qwerty


Output

YES
qwerty
qwerty
qwerty

Note

In the second example you cannot reorder the strings because the string "abab" is not a substring of the string "abacaba".
def comp(a,b):
    return (len(a) <= len(b) and (not a not in b))

def merge(v):
    if(len(v)<=1): return v
    m = int(len(v)/2)
    l = merge(v[:m])
    r = merge(v[m:])
        
    t1 = len(l)
    t2 = len(r)
    tt = t1+t2
    aux = []
    idl = 0
    idr = 0
    for j in range(tt):
        if(idl==t1):
            aux.append(r[idr])            
            idr+=1
            continue
        if(idr==t2):
            aux.append(l[idl])
            idl+=1
            continue
        if(comp(r[idr],l[idl])):
            aux.append(r[idr])
            idr+=1
        else:
            aux.append(l[idl])
            idl+=1
    return aux
        


n = int(input())
a = []
verf = 0
maior = -1
ind = 0
for i in range(n):
    a.append(input())
    
a = merge(a)
for i in range(n-1):
    if(a[i]not in a[i+1]):
        verf = 1
        break
if(verf==0):
    print("YES")
    for i in range(n):
        print(a[i])
else:
    print("NO")



