Задача №1822. Волшебные кольца
Начинающий волшебник Вася на экзамене должен показать знание заклинаний. Он не совсем надеется на свою память и решил по опыту поколений сделать себе кольца и выгравировать на них \(N\) самых трудных заклинаний.
Гравировка каждой буквы — процесс долгий и дорогой, поэтому Вася хочет использовать пересечение начал и окончаний некоторых заклинаний.
Помогите Васе минимизировать количество букв для гравировки. Известно, что ни одно из заклинаний не является полной подстрокой другого. Гравировать можно на нескольких кольцах, но при этом каждое из заклинаний должно полностью находиться хотя бы на одном из колец и читаться по часовой стрелке. На кольце гравировка идёт в один ряд.
В первой строке входного файла содержится число заклинаний \(N\) (1 \(\le\) \(N\) \(\le\) 4000). В последующих строках содержатся заклинания, по одному на строку. Каждое заклинание — строка из маленьких латинских букв без пробелов. Суммарная длина всех заклинаний не превышает \(10^6\).
В первую строку выходного файла нужно вывести общее количество колец. В следующих строках вывести надписи, которые нужно выгравировать на кольцах, по одной на каждую строку.
1 abrakadabra
1 abrakad
3 abracad cadr aba
1 abracadrab