Пока Рик в очередной раз спасал вселенную исключительно в своих интересах, Морти нашел в гараже набор разноцветных плюмбусов, развешенных на веревке.
Морти знает, что если плюмбусы разных цветов висят рядом, то они быстрее портятся, поэтому он решил минимизировать ущерб, то есть перевесить плюмбусы так, чтобы они были сгруппированы по цветам.
Всего на веревке $$$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$$$ из середины вправо.
| Название |
|---|


