Задачі
Набірний принтер
Набірний принтер
Вам потрібно надрукувати \textbf{N} слів на наборному принтері. Набірний принтер -- це такий старий принтер, у який потрібно встановлювати маленькі металеві елементи (кожен з яких містить літеру) для того, щоб сформувати слова. Після цього до них притискається аркуш паперу, щооб віддрукувати слово. Ваш принтер дозволяє викоеувати наступні операції:
\begin{enumerate}
\item Додавати літеру в кінець слова, яке набрано в принтері.
\item Видаляти останню літеру зі слова, яке набрано у принтері. Це можна робити лише у тому випадку, коли в принтері встановлена хоча б одна літера.
\item Друкувати слово, набране у принтері.
\end{enumerate}
Спочатку принтер пустий: він не містить металевих елементів з літерами. По завершенню друку дозволяється залишати в принтері деякі літери. Також можна друкувати слова у довільному порядку, який вам подобається. Оскільки кожна операція займає деякий час, вы хочете мінімізувати загальну кількість операцій. Ви повинні написати програму, яка за заданими \textbf{N} словами знаходить мінімальну кількість операцій, необхідних для друку всіх цих слів у довільному порядку, і виводить одну з таких послідовностей операцій. \textbf{1} <= \textbf{N} <= \textbf{25 000} (\textbf{N} -- Кількість слів, які потрібно надрукувати)
\textbf{Вхідні дані} Ваша програма повинна читати зі стандартного вводу наступні дані:
\begin{enumerate}
\item Рядок \textbf{1} містить ціле число \textbf{N} -- кількість слів, які потрібно надрукувати.
\item Кожен з наступних \textbf{N} рядків містить слово. Кожне слово складається лише з маленьких латинських літер ('\textbf{a}' -- '\textbf{z}') і має довжину від \textbf{1} до \textbf{20} символів, включно.
\end{enumerate}
Все слова різні. \textbf{Вихідні дані} Ваша программа повинна вивести у стандартний вивід наступні дані:
\begin{enumerate}
\item Рядок \textbf{1} повинен містити ціле число \textbf{M}, якое означає мінімальну кількість операцій, потрібних для друку \textbf{N} слів.
\item Кожен з наступних \textbf{M} рядків повинен містити по одному символу. Ці символи описують послідовність викоеуваних операцій. Кожна операція повинна бути описана наступним чином:
\begin{enumerate}
\item Додавання літери позначається самою літерою, набраною у нижньому регістрі
\item Видалення останньої літери позначається символом '\textbf{-}' (мінус, \textbf{ASCII} код \textbf{45})
\item Друк поточного слова позначається символом '\textbf{P}' (велика латинська літреа \textbf{P})
\end{enumerate}
\end{enumerate}
Вхідні дані #1
3 print the poem
Вихідні дані #1
20 t h e P - - - p o e m P - - - r i n t P