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