В известной игре (также называемой "Метаграммой") необходимо из одного слова сделать другое, меняя за один ход по одной букве. Например, сделать из мухи слона можно так: муха - мура - тура - тара - кара - каре - кафе - кафр - каюр - каюк - крюк - урюк - урок - срок -сток - стон - слон.
Напишите программу, которая по данному набору слов, начальному и конечному слову, находит самый короткий способ превратить одно слово в другое.
Формат входных данных
Первое число входных данных содержит целое число N, 2≤N≤105. Далее идет N различных строчек, каждая из которых содержит одно словарное слово. Все слова состоят из заглавных латинских букв и имеют равную длину, не превосходящую 10.
Программа должна найти наименьшую цепочку, состоящую из данных слов. Цепочка должна начинаться со слова, идущего в словаре первым и заканчиваться словом, идущим в словаре вторым. Два соседних слова в цепочке должны отличаться ровно в одной букве.
Формат выходных данных
Первая строка выходных данных должна содержать количество слов в минимальной искомой цепочке (включая начальное и конечное слово). Далее должны идти все слова цепочки.
Если искомой цепочки не существует, программа должна вывести число 0.
Пример
Вход Выход
8 4
BAY BAY
PET BAT