#include <bits/stdc++.h>   using namespace std;   template <typename T, typename U>   ostream& operator<<(ostream& o, const pair<T, U>& x) {     o <<  (  << x.first <<  ,   << x.second <<  ) ;     return o;   }   template <typename T>   ostream& operator<<(ostream& o, const vector<T>& x) {     o <<  [ ;     int b = 0;     for (auto& a : x) o << (b++ ?  ,   :   ) << a;     o <<  ] ;     return o;   }   template <typename T>   ostream& operator<<(ostream& o, const set<T>& x) {     o <<  { ;     int b = 0;     for (auto& a : x) o << (b++ ?  ,   :   ) << a;     o <<  } ;     return o;   }   template <typename T>   ostream& operator<<(ostream& o, const multiset<T>& x) {     o <<  { ;     int b = 0;     for (auto& a : x) o << (b++ ?  ,   :   ) << a;     o <<  } ;     return o;   }   template <typename T>   ostream& operator<<(ostream& o, const unordered_set<T>& x) {     o <<  { ;     int b = 0;     for (auto& a : x) o << (b++ ?  ,   :   ) << a;     o <<  } ;     return o;   }   template <typename T>   ostream& operator<<(ostream& o, const unordered_multiset<T>& x) {     o <<  { ;     int b = 0;     for (auto& a : x) o << (b++ ?  ,   :   ) << a;     o <<  } ;     return o;   }   template <typename T, typename U>   ostream& operator<<(ostream& o, const map<T, U>& x) {     o <<  { ;     int b = 0;     for (auto& a : x) o << (b++ ?  ,   :   ) << a;     o <<  } ;     return o;   }   template <typename T, typename U>   ostream& operator<<(ostream& o, const multimap<T, U>& x) {     o <<  { ;     int b = 0;     for (auto& a : x) o << (b++ ?  ,   :   ) << a;     o <<  } ;     return o;   }   template <typename T, typename U>   ostream& operator<<(ostream& o, const unordered_map<T, U>& x) {     o <<  { ;     int b = 0;     for (auto& a : x) o << (b++ ?  ,   :   ) << a;     o <<  } ;     return o;   }   template <typename T, typename U>   ostream& operator<<(ostream& o, const unordered_multimap<T, U>& x) {     o <<  { ;     int b = 0;     for (auto& a : x) o << (b++ ?  ,   :   ) << a;     o <<  } ;     return o;   }   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     int t;     cin >> t;     while (t--) {       int n, k;       string s;       cin >> n >> k >> s;       vector<int> A(n);       for (int i = 0; i < n; i++) {         if (s[i] ==  R ) A[i] = 0;         if (s[i] ==  G ) A[i] = 1;         if (s[i] ==  B ) A[i] = 2;       }       int ans = k;       for (int o = 0; o < 3; o++) {         int x = 0;         for (int i = 0; i < k; i++) {           if (A[i] != (o + i) % 3) x++;         }         ans = min(ans, x);         for (int i = k; i < n; i++) {           if (A[i - k] != (o + i - k) % 3) x--;           if (A[i] != (o + i) % 3) x++;           ans = min(ans, x);         }       }       cout << ans << endl;     }   }   