B. Подстрочная сортировка
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Заданы $$$n$$$ строк. Каждая строка состоит из строчных букв латинского алфавита. Расположите (переупорядочите) строки в таком порядке, чтобы каждая строка содержала все строки, идущие перед ней, в качестве подстроки.

Строка $$$a$$$ содержится в качестве подстроки в строке $$$b$$$, если в строке $$$b$$$ можно выбрать несколько подряд идущих букв так, что они образуют строку $$$a$$$. Например, строка «for» содержится в качестве подстроки в строках «codeforces», «for» и «therefore», но при этом не содержится в качестве подстроки в строках «four», «fofo» и «rof».

Входные данные

В первой строке входных данных записано целое число $$$n$$$ ($$$1 \le n \le 100$$$) — количество строк в наборе.

Далее содержится $$$n$$$ заданных строк. Длина каждой из них от $$$1$$$ до $$$100$$$ букв включительно. Все строки состоят из строчных латинских букв.

Среди заданных строк могут быть одинаковые.

Выходные данные

Если заданные $$$n$$$ строк невозможно расположить в требуемом порядке, выведите «NO» (без кавычек).

В случае положительного ответа выведите «YES» (без кавычек), следом выведите $$$n$$$ заданных строк в требуемом порядке.

Примеры
Входные данные
5
a
aba
abacaba
ba
aba
Выходные данные
YES
a
ba
aba
aba
abacaba
Входные данные
5
a
abacaba
ba
aba
abab
Выходные данные
NO
Входные данные
3
qwerty
qwerty
qwerty
Выходные данные
YES
qwerty
qwerty
qwerty
Примечание

Во втором тестовом примере строки невозможно расположить в требуемом порядке потому, что «abab» не является подстрокой «abacaba».