Як відомо, більшість процесорів, які зараз випускаються, є багатоядерними, тобто підтримують виконання декількох інструкцій одночасно. Компанія Paraltel розробила новий тип двоядерного процесора, який дозволяє виконувати різних інструкцій, які позначаються великими латинськими літерами. Виконання кожної такої інструкції вимагає рівно одного такту роботи процесора.
Програма для цього процесора являє собою послідовність інструкцій. Інструкції програми повинні бути виконані у тому порядку, у якому вони йдуть у програмі, змінювати місцями інструкції не дозволяється.
Завдяки наявності двох ядер, процесор може одночасно виконувати дві програми — по одній на кожному ядрі. Проте через особливості архітектури одночасно на двох ядрах одного процесора можуть виконуватись лише однакові інструкції.
Під час виконання двох програм на процесорі спеціальний керівний пристрій оптимізує виконання так, щоб завершити виконання обох програм якомога раніше. Наприклад, програми "" та "" можна виконати на процесорі за такти: спочатку одночасно виконуються команди "" обох програм на різних ядрах, потім одночасно команди "", потім команда "" з першої програми і, нарешті, "" з другої. Аналогічно, програми "" та "" виконуються за такти.
Нещодавно спеціалісти компанії зібрали з процесорів суперкомп'ютер, на якому потрібно виконати програм. Організація обчислень така, що кожен процесор повинен виконати рівно по дві програми з цього набору, по одній на кожному ядрі.
Вам необхідно спланувати виконання програм на процесорах так, щоб час завершення виконання усіх програм був мінімальним.
У першому рядку задано число (1 \leq n \leq 10) — кількість процесорів. Далі, у рядках задано програми, які необхідно виконати. Кожна програма містить від до команд. Кожна команда подається великою латинською літерою.
Виведіть єдине число — мінімальний час, за який можна виконати усі програми.
Приклад 1