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.
//----------Code submitted by Akash Kumar---------
#include<bits/stdc++.h>
typedef long long int ll;
#define jaldi       ios::sync_with_stdio(0); cin.tie(0)
#define testcase    ll t;cin>>t;while(t--)
#define fw(i,a,b)   for(i=a;i<b;i++)
#define fw1(i,a,b)  for(i=a;i<=b;i++)
#define bw(i,a,b)   for(i=a;i>b;i--)
#define bw1(i,a,b)  for(i=a;i>=b;i--)
#define pb          push_back
#define vec         vector<ll>
#define mll         map<ll,ll>
#define F           first
#define S           second
#define lcm(a,b)    (a*b)/(__gcd(a,b))
#define yes         cout<<"YES"<<endl
#define no          cout<<"NO"<<endl
#define prt(x)      cout<<x
#define prts(x)     cout<<x<<" "
#define prtl(x)     cout<<x<<endl
#define prtnl()     cout<<"\n"
#define endl        "\n"

const ll mod = 1000000007; //10^9+7

using namespace std;

ll power(ll a, ll b, ll modi)
{
  a %= modi;
  ll res = 1 ;
  while (b)
  {
    if (b % 2)
    {
      res = (res * a) % modi ;
    }
    b /= 2 ;
    a = (a * a) % modi ;
  }
  return res ;
}

int main()
{
#ifndef ONLINE_JUDGE    //input and output
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
#endif
  jaldi; // fast input
  testcase
  {
    int n, k;
    cin >> n >> k;
    string s;
    cin >> s;
    if (n <= 2 * k)
      no;
    else
    {
      int i, flag = 0;
      fw(i, 0, k)
      {
        if (s[i] != s[n - 1 - i])
        {
          flag = 1;
          break;
        }
      }
      if (flag)
        no;
      else
        yes;
    }
  }
#ifndef ONLINE_JUDGE
  cout << "\nTime Elapsed : " << 1.0 * clock() / CLOCKS_PER_SEC << " s\n";
#endif
  return 0;
}