class Bit: def __init__(self, n): self.size = n self.tree = [0] * (n + 1) def range_sum(self, l, r): return self.sum(r - 1) - self.sum(l - 1) def sum(self, i): i += 1 s = 0 while i > 0: s += self.tree[i] i -= i & -i return s def get(self, i): return self.sum(i) - self.sum(i - 1) def add(self, i, x): i += 1 while i <= self.size: self.tree[i] += x i += i & -i m, k = map(int, input().split()) A = list(map(int, input().split())) ans = [0] * m cnt = [0] * m lst = [] for a in A: c = cnt[a] * m + a lst.append(c) cnt[a] += 1 bit = Bit(m * k) ans_base = 0 for a in lst: ans_base += bit.range_sum(a, m * k) bit.add(a, 1) cnt = [0] * m for i in range(k): lst = [] for j in range(i * m, i * m + m): a = A[j] c = cnt[a] * m + a lst.append(c) cnt[a] += 1 dic = {l:i for i, l in enumerate(sorted(lst))} bit = Bit(m) tot = 0 for a in lst: a = dic[a] tot += bit.range_sum(a, m) bit.add(a, 1) base = tot i = 1 for a in lst[:-1]: a = dic[a] tot -= a tot += m - a - 1 ans[i] += tot - base i += 1 print(min(ans) + ans_base)