#ifdef IVELOID
 #define debug(x) cerr<<#x<<":"<<x<<endl
#else
 #define debug(x)
#endif
#include<bits/stdc++.h>
using namespace std;
#define int long long
using ll=long long;
using ld=long double;
const int mod=998244353;
#define sz(x) (int)x.size()
#define all(x) x.begin(),x.end()
#define rep(i,a,b) for(int i=(a);i<=b;++i)
#define inc(i,a,b) for(int i=(a);i<(int)b;++i)
using pii=pair<int,int>;
#define fi first
#define se second
using vi=vector<int>;
using vvi=vector<vector<int>>;
using vpii=vector<pii>;
template<class T>T cmax(T &a,T b){return a=max(a,b);}
template<class T>T cmin(T &a,T b){return a=min(a,b);}
ll acc(const vector<int> &a){return accumulate(all(a),0LL);}
double acc(const vector<double> &a){return accumulate(all(a),0.0);}
ll qpow(ll a,ll x,ll p=mod){ll res=1%p;a=a%p;for(;x;x>>=1,a=a*a%p) if(x&1) res=(res*a)%p;return res;}

const int inf=1e9;
// head

void solve(){
  int n,k;
  cin>>n>>k;
  string s;
  cin>>s;
  int cnt =0;
  for(int i=0,j=n-1;j-i-1>0&&i<j;++i,--j){
    if(s[i]==s[j]) cnt++;
    else break;
  }
  cout<<(cnt>=k?"YES\n":"NO\n");
}

signed main() {
  ios::sync_with_stdio(false),cin.tie(0);
  int t;
  cin>>t;
  while(t--) solve();
  return 0;
}
