Стиснення
Вася вирішив, що якість спам-фільтра його поштової скриньки його не влаштовує, і вирішив створити власний. Він підготував список L_0, що містить від 1 до 5·10^4 слів, кожне з яких має довжину від 1 до 40 символів. На його думку, будь-яке повідомлення, яке містить хоча б одне з цих слів, є спамом.
Список вийшов досить великим, і Вася хоче його стиснути. Він прагне замінити список L_0 на список непорожніх слів L_1 так, щоб для кожного слова w_0 зі списку L_0 існувало слово w_1 зі списку L_1, яке є префіксом слова w_0. Однак, якщо в L_1 будуть занадто короткі слова, багато повідомлень можуть бути помилково класифіковані як спам. Після роздумів Вася визначив критерій оптимальності: він хоче знайти такий список L_1, щоб штраф був мінімальним, де |w| позначає довжину рядка w.
Допоможіть Васі вирішити цю задачу.
Вхідні дані
Перша стрічка вхідних даних містить N_0 — кількість слів у списку L_0. Наступні N_0 рядків містять слова зі списку L_0, що складаються з малих латинських літер.
Вихідні дані
У першому рядку виведіть число P, що відповідає оптимальному списку L_1. У другому рядку виведіть N_1 — кількість слів у списку L_1. У наступних рядках виведіть слова зі списку L_1. Якщо існує декілька оптимальних рішень, будь-яке з них буде прийнятним.