Kawashiro Nitori is a girl who loves competitive programming.

One day she found a string and an integer. As an advanced problem setter, she quickly thought of a problem.

Given a string s and a parameter k, you need to check if there exist k+1 non-empty strings a_1,a_2...,a_{k+1}, such that $$$s=a_1+a_2+… +a_k+a_{k+1}+R(a_k)+R(a_{k-1})+…+R(a_{1}).$$$ 

Here + represents concatenation. We define R(x) as a reversed string x. For example R(abcd) = dcba. Note that in the formula above the part R(a_{k+1}) is intentionally skipped.

Input

The input consists of multiple test cases. The first line contains a single integer t (1≤ t≤ 100) — the number of test cases. The description of the test cases follows.

The first line of each test case description contains two integers n, k (1≤ n≤ 100, 0≤ k≤ ⌊ n/2 ⌋) — the length of the string s and the parameter k.

The second line of each test case description contains a single string s of length n, consisting of lowercase English letters.

Output

For each test case, print "YES" (without quotes), if it is possible to find a_1,a_2,…,a_{k+1}, and "NO" (without quotes) otherwise.

You can print letters in any case (upper or lower).

Example

Input


7
5 1
qwqwq
2 1
ab
3 1
ioi
4 2
icpc
22 0
dokidokiliteratureclub
19 8
imteamshanghaialice
6 3
aaaaaa


Output


YES
NO
YES
NO
YES
NO
NO

Note

In the first test case, one possible solution is a_1=qw and a_2=q.

In the third test case, one possible solution is a_1=i and a_2=o.

In the fifth test case, one possible solution is a_1=dokidokiliteratureclub.
#include <bits/stdc++.h>
 
#define dbg(x) cerr << #x << " == " << x << endl
#define _ << " , " <<
 
using namespace std;
 
template<class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }

const int maxn = 2e5 + 100;

char s[maxn];
int n, k;
char A[maxn],B[maxn];

int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(0);
  int T=1;
  cin>>T;
  for(int t=0;t<T;t++){
    cin>>n>>k>>s;
    
    if(k==0) {
      cout << "YES\n";
      continue;
    }


    int yes = 0;
    for (int len = k; len < n; len++) {
      int i = 0, j = n-1;
      for (int p = 0; p < len; p++) {
        A[p] = s[i++]; 
        B[p] = s[j--];
      }
      A[len] = B[len] = 0;
      if (strcmp(A,B) == 0 and i <= j) yes = 1;
    }

    cout << (yes ? "YES" : "NO") << "\n";
  }
  cout.flush();
  return 0;
}