Всем известны правила игры в города: первый игрок называет произвольный
город, следующий - город, название которого начинается на ту же букву, на
которую заканчивается название предыдущего города, и т.д. Аналогичным образом
можно играть не в названия городов, а, например, в названия животных. Задан
список допустимых для описанной игры слов, слова в нем могут повторяться.
Напишите программу, определяющую, в каком порядке в процессе игры должны быть
названы слова из списка, чтобы каждое слово было использовано ровно столько
раз, сколько оно в нем встречается.
Исходные данные
В первой строке входного файла записано целое число N - количество слов в
списке (1 ≤ N ≤ 1000), а в последующих N строках - сами слова.
Каждое из них является последовательностью не более чем из 10 строчных
английских букв.
Результат
Выведите в выходной файл слова в искомом порядке, либо сообщение NO, если
такого порядка не существует. Каждое слово должно быть выведено в отдельную
строку выходного файла.
Пример
Исходные данные | Результат |
4 b ab bc bb | ab bb b bc |
|