Задача №1822. Волшебные кольца

Начинающий волшебник Вася на экзамене должен показать знание заклинаний. Он не совсем надеется на свою память и решил по опыту поколений сделать себе кольца и выгравировать на них \(N\) самых трудных заклинаний.

Гравировка каждой буквы — процесс долгий и дорогой, поэтому Вася хочет использовать пересечение начал и окончаний некоторых заклинаний.

Помогите Васе минимизировать количество букв для гравировки. Известно, что ни одно из заклинаний не является полной подстрокой другого. Гравировать можно на нескольких кольцах, но при этом каждое из заклинаний должно полностью находиться хотя бы на одном из колец и читаться по часовой стрелке. На кольце гравировка идёт в один ряд.

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

В первой строке входного файла содержится число заклинаний \(N\) (1 \(\le\) \(N\) \(\le\) 4000). В последующих строках содержатся заклинания, по одному на строку. Каждое заклинание — строка из маленьких латинских букв без пробелов. Суммарная длина всех заклинаний не превышает \(10^6\).

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

В первую строку выходного файла нужно вывести общее количество колец. В следующих строках вывести надписи, которые нужно выгравировать на кольцах, по одной на каждую строку.

Примеры
Входные данные
1
abrakadabra
Выходные данные
1
abrakad
Входные данные
3
abracad
cadr
aba
Выходные данные
1
abracadrab
Сдать: для сдачи задач необходимо войти в систему