I. Хаотичные плюмбусы
ограничение по времени на тест
0.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Пока Рик в очередной раз спасал вселенную исключительно в своих интересах, Морти нашел в гараже набор разноцветных плюмбусов, развешенных на веревке.

Морти знает, что если плюмбусы разных цветов висят рядом, то они быстрее портятся, поэтому он решил минимизировать ущерб, то есть перевесить плюмбусы так, чтобы они были сгруппированы по цветам.

Всего на веревке $$$N \times K$$$ плюмбусов: по $$$N$$$ штук каждого из $$$K$$$ цветов. За одну секунду Морти может снять любой плюмбус и повесить его с левого или с правого края веревки, то есть левее или правее всех остальных. Морти хочет получить такое расположение плюмбусов, при котором все плюмбусы одного цвета формируют ровно одну последовательную группу. В итоге на веревке будет $$$K$$$ таких групп. Последовательность групп при этом не имеет значения.

Определите, какое минимальное количество времени потребуется Морти, чтобы достичь своей цели.

Входные данные

В первой строке задано два целых числа $$$N$$$ и $$$K$$$ — количество плюмбусов каждого цвета и количество цветов соответственно ($$$1 \le N, K \le 1000$$$).

Во второй строке задано $$$N \times K$$$ чисел — начальное расположение плюмбусов, в котором каждое число $$$A_i$$$ обозначает цвет плюмбуса номер $$$i$$$ ($$$1 \le A_i \le K$$$).

В связи с большим объемом входных данных рекомендуется использовать эффективные методы ввода (например, scanf в C++).

Выходные данные

Необходимо вывести одно число — минимальное количество секунд, которое потребуется Морти для группировки плюмбусов описанным образом.

Примеры
Входные данные
3 3
1 2 3 3 2 1 1 2 3
Выходные данные
4
Входные данные
2 4
3 3 1 1 4 4 2 2
Выходные данные
0
Примечание

На рисунке изображен первый пример. Оптимальный алгоритм группировки для этого примера может выглядеть так: перевесить два плюмбуса цвета $$$1$$$ из середины влево и два плюмбуса цвета $$$3$$$ из середины вправо.