#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const long long linf = 0x3f3f3f3f3f3f3f3f;
char c[200100];
int qnt[200100][26];
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int n, k;
    scanf("%d%d", &n, &k);
    scanf(" %s", c);
    int m = n / k;
    int res = 0;
    if (k % 2) {
      for (int i = 0; i <= k / 2; i++) {
        for (int j = 0; j < m; j++) {
          int a = i + j * k;
          int b = k - 1 - i + j * k;
          qnt[i][c[a] - 'a']++;
          qnt[i][c[b] - 'a']++;
        }
      }
      for (int i = 0; i < k / 2; i++) {
        int maior = 0;
        for (int j = 0; j < 26; j++) maior = max(maior, qnt[i][j]);
        res += 2 * m - maior;
      }
      int maior = 0;
      for (int j = 0; j < 26; j++) maior = max(maior, qnt[k / 2][j]);
      res += (2 * m - maior) / 2;
    } else {
      for (int i = 0; i < k / 2; i++) {
        for (int j = 0; j < m; j++) {
          int a = i + j * k;
          int b = k - 1 - i + j * k;
          qnt[i][c[a] - 'a']++;
          qnt[i][c[b] - 'a']++;
        }
      }
      for (int i = 0; i < k / 2; i++) {
        int maior = 0;
        for (int j = 0; j < 26; j++) maior = max(maior, qnt[i][j]);
        res += 2 * m - maior;
      }
    }
    printf("%d\n", res);
    for (int i = 0; i <= n; i++) {
      for (int j = 0; j < 26; j++) qnt[i][j] = 0;
    }
  }
  return 0;
}
