Боян грає в комп'ютерну гру. Спочатку є куль, розташованих у ряд. На кожній кулі написано число, і будь-які дві сусідні кулі мають різні числа. Гра складається з таких кроків:
Гравець видаляє одну кулю з ряду.
Поки сусідні кулі мають однакові числа, вони автоматично видаляються з ряду.
Якщо в ряду ще залишилися кулі, повертаємося до кроку ; інакше гра завершується.
Очки нараховуються за кількість куль, які автоматично видаляються. Мета гри — максимізувати кількість очок.
Приклад:
Боян видаляє кулю номер . Залишаються кулі {, , , , }.
Автоматично видаляються послідовні кулі з однаковими номерами: {, , , , } -> {, , } -> {}. Залишається куля {}.
Оскільки в ряду ще є кулі, переходимо до кроку .
Наступна ітерація:
Боян видаляє кулю номер . Залишаються кулі {}.
Послідовних куль з однаковими числами більше немає.
Оскільки куль у ряду не залишилося, гра завершується.
Кількість куль, видалених автоматично, дорівнює . Це найбільший можливий рахунок у цій грі. Боян багато грає, але все ще не впевнений, чи грає він оптимально. Напишіть програму, яка допоможе йому знайти найкращий можливий результат.
Перша строка містить натуральне число (1 \le n \le 500). Друга строка містить натуральних чисел — числа, записані на кулях (число на кулі \le 10^6).
Виведіть найбільшу кількість очок, яку може отримати Боян.
Приклад 1
Приклад 2