思路:贪心,我们需要最少的操作次数,那就可以cnt出每个字符串对应位置的元素个数,并且要所有对应位置的字符都变成最大数量的那个字符,具体是什么字符我们不关心。那么剩下需要修改的字符数量就是n // k - mx,我们遍历一遍,然后累加即可得到ans

注意:具体实现的时候不需要把具体的n // k个字符串构造出来,直接用step遍历即可,步长为k

代码:

import sys
input = lambda: sys.stdin.readline().strip()

import math
inf = 10 ** 18

def I():
    return input()

def II():
    return int(input())

def MII():
    return map(int, input().split())

def GMI():
    return map(lambda x: int(x) - 1, input().split())

def LI():
    return input().split()

def LII():
    return list(map(int, input().split()))

def LFI():
    return list(map(float, input().split()))

fmax = lambda x, y: x if x > y else y
fmin = lambda x, y: x if x < y else y
isqrt = lambda x: int(math.sqrt(x))

'''

'''

def solve():
    n, k = MII()
    s = I()

    ans = 0
    for i in range(0, k):
        cnt = [0] * 26
        for j in range(i, n, k):
            x = ord(s[j]) - ord('a')
            cnt[x] += 1
        mx = max(cnt)
        ans += n // k - mx
    print(ans)

t = 1
# t = II()
for _ in range(t):
    solve()