#include <bits/stdc++.h>
using namespace std;
long long modInverse(long long a, long long m) {
  long long m0 = m;
  long long y = 0, x = 1;
  if (m == 1) return 0;
  while (a > 1) {
    long long q = a / m;
    long long t = m;
    m = a % m, a = t;
    t = y;
    y = x - q * y;
    x = t;
  }
  if (x < 0) x += m0;
  return x;
}
long long nCmmod(long long n, long long m, long long mod) {
  vector<long long> a(200001, 1);
  for (__typeof(1) i = 1; i < 200001; i += 1) {
    a[i] = (a[i - 1] * i) % mod;
  }
  long long p = 1;
  p = (p * a[n]) % mod;
  p = (p * modInverse(a[m], mod)) % mod;
  p = (p * modInverse(a[n - m], mod)) % mod;
  return p;
}
vector<long long> p(long long n) {
  long long x = 0;
  vector<long long> v;
  for (long long i = 1; i <= sqrt(n); i++) {
    if (n % i == 0) {
      if (n / i == i) {
        v.push_back(i);
      } else {
        v.push_back(i);
        v.push_back(n / i);
      }
    }
  }
  sort(v.begin(), v.end());
  return v;
}
long long bsearch(vector<long long> arr, long long l, long long r, int x) {
  if (r >= l) {
    long long mid = l + (r - l) / 2;
    if (arr[mid] == x) return mid;
    if (arr[mid] > x) return bsearch(arr, l, mid - 1, x);
    return bsearch(arr, mid + 1, r, x);
  }
  return l + (r - l) / 2;
}
string decToBinary(long long n) {
  string s = "";
  long long f = 0;
  for (int i = 31; i >= 0; i--) {
    int k = n >> i;
    if (k & 1)
      s += "1";
    else
      s += "0";
  }
  return s;
}
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long int power(long long int x, long long int y) {
  long long int temp;
  if (y == 0) return 1;
  temp = power(x, y / 2);
  if (y % 2 == 0)
    return (temp % 1000000007 * temp % 1000000007) % 1000000007;
  else {
    if (y > 0)
      return (x % 1000000007 * temp % 1000000007 * temp % 1000000007) %
             1000000007;
    else
      return (temp % 1000000007 * temp % 1000000007) % 1000000007 / x;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long t = 1;
  cin >> t;
  while (t--) {
    long long n, k;
    cin >> n >> k;
    string s;
    cin >> s;
    long long m = n / k;
    long long cn = (k + 1) / 2;
    long long r = 0;
    for (__typeof(cn) i = 0; i < cn; i += 1) {
      vector<long long> A(26, 0);
      char c = s[i];
      for (__typeof(m) j = 0; j < m; j += 1) {
        A[s[j * k + i] - 'a'] += 1;
      }
      for (__typeof(m) j = 0; j < m; j += 1) {
        A[s[j * k + k - 1 - i] - 'a'] += 1;
      }
      long long ma = -1;
      for (__typeof(26) j = 0; j < 26; j += 1) {
        if (A[j] > ma) {
          ma = A[j];
        }
      }
      if (k % 2 == 1 && i == cn - 1)
        r += m - ma / 2;
      else
        r += 2 * m - ma;
    }
    cout << r << endl;
  }
}
