\begin{problem}{Сжатие}{STDIN}{STDOUT}{1 секунда}{64 мегабайта}

Вася твёрдо решил, что его не устраивает качество спам-фильтра на его почтовом ящике и решил сделать свой. Он подготовил список $L_0$ из $1 \le N_0 \le 5 * 10^4$ слов, каждое длиной 
не менее чем $1$ и не более чем $40$ символов. По его мнению, любое сообщение, содержащее хотя бы одно из этих слов~--- спам.

Список получился большой, и Вася хочет его сжать. А именно: он хочет заменить список $L_0$ на список непустых слов $L_1$, такой, чтобы для каждого слова $w_0 \in L_0$ существовало бы 
слово $w_1 \in L_1$, являющееся префиксом слова $w_0$. Однако, если в $L_1$ будут слишком короткие слова, то много сообщений будет ошибочно классифицировано, как спам. Подумав, 
Вася выработал критерий оптимальности: он хочет найти такой список $L_1$, чтобы штраф $P=\sum_{w_1 \in L_1}2^{40-|w_1|}$ был минимален, где $|w|$ обозначает длину строки~$w$.

Помогите Васе решить эту задачу.  

\InputFile
Первая строка входных данных содержит $N_0$~--- число слов в списке $L_0$.
Последующие $N_0$ строк содержат слова из списка $L_0$, состоящие из маленьких латинских символов.

\OutputFile
В первой строке выведите число $P$, соответствующее оптимальному списку $L_1$.
Во второй строке выведите $N_1$~--- число слов в списке $L_1$.
В последующих строках выведите слова списка $L_1$.
В случае, если существует несколько оптимальных решений - выведите любое из них.

\Examples

\begin{example}
\exmp{4
abxcaba
abax
abay
abaz
}{146028888064
2
aba
abxcaba
}%
\end{example}

\end{problem}
