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".
from collections import OrderedDict
from operator import itemgetter

def IsSubString(s1,s2):
    start_indices = []
    for i in range(len(s2)):
        if s2[i] == s1[0]:
            start_indices.append(i)
        
    for i in start_indices:
        count = 0
        index = i
        j = 0
        while index < len(s2) and j < len(s1) and s1[j] == s2[index]:
            count += 1
            j += 1
            index += 1
        if count == len(s1):
            return True
        
    return 

def SubstringSort():
    strings = {}
    n = int(raw_input())
    for i in range(n):
        s = raw_input()
        if s not in strings:
            strings[s] = [len(s),1]
        else:
            strings[s][1] += 1

    strings_new = OrderedDict(sorted(strings.items(), key=itemgetter(1)))
    count = 0

    for i in range(len(strings_new)-1):
        if IsSubString(strings_new.keys()[i],strings_new.keys()[i+1]):
            count += 1

    if count == len(strings_new) - 1:
        print 'YES'
        for i in strings_new:
            for j in range(strings_new[i][1]):
                print i  
    else:
        print 'NO'

SubstringSort()
