#include <bits/stdc++.h>
using namespace std;
long long int mult(long long int a, long long int b,
                   long long int p = 1000000007) {
  return ((a % p) * (b % p)) % p;
}
long long int add(long long int a, long long int b,
                  long long int p = 1000000007) {
  return (a % p + b % p) % p;
}
long long int fpow(long long int n, long long int k,
                   long long int p = 1000000007) {
  long long int r = 1;
  while (k > 0) {
    if (k & 1) r = r * n % p;
    n = n * n % p;
    k = k >> 1;
  }
  return r;
}
long long int inv(long long int a, long long int p = 1000000007) {
  return fpow(a, p - 2, p);
}
long long int f(long long int n) {
  long long int i = 0;
  while (n > 0) {
    i++;
    n /= 10;
  }
  return i;
}
int main() {
  long long int t;
  cin >> t;
  while (t--) {
    long long int n, k;
    string s = "RGB";
    cin >> n >> k;
    string inp;
    cin >> inp;
    vector<long long int> v1(n, 0);
    vector<long long int> v2(n, 0);
    vector<long long int> v3(n, 0);
    long long int ans = 1e9;
    long long int cur = 0;
    for (long long int i = 0; i < n; i++) {
      if (inp[i] != s[i % 3]) v1[i] = 1;
      cur += v1[i];
      if (i >= k) {
        cur -= v1[i - k];
      }
      if (i >= k - 1) {
        ans = min(ans, cur);
      }
    }
    cur = 0;
    for (long long int i = 0; i < n; i++) {
      if (inp[i] != s[(i + 1) % 3]) v2[i] = 1;
      cur += v2[i];
      if (i >= k) {
        cur -= v2[i - k];
      }
      if (i >= k - 1) {
        ans = min(ans, cur);
      }
    }
    cur = 0;
    for (long long int i = 0; i < n; i++) {
      if (inp[i] != s[(i + 2) % 3]) v3[i] = 1;
      cur += v3[i];
      if (i >= k) {
        cur -= v3[i - k];
      }
      if (i >= k - 1) {
        ans = min(ans, cur);
      }
    }
    cout << ans << "\n";
  }
  return 0;
}
