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>
#include<unordered_set>
using namespace std;
#define ll long long int
#define f1(i,n) for(i=0;i<n;i++)
#define f2(i,a,n) for(i=n-1;i>=a;i--)
#define f3(i,a,n) for(i=a;i<n;i++)
#define vl vector<long long int>
#define um unordered_map<ll,ll>
#define us unordered_set<ll>
#define pb push_back
#define mp make_pair
#define sv(v) sort(v.begin(),v.end())
#define rv(v) reverse(v.begin(),v.end())
#define sa(v,n) sort(v,v+n)
#define ra(v,n) sort(v,v+n,greater<int>())
#define mod 1000000007


void solution(){
	ll k{},kg{},l{},h{},r{},u{},n=0,m{},x=0,y{},o=0,sum=0,sum1{},pos{},ch=0,c1=0,c2=0,i=0,j=0,ans{},a{},b=0,c=0,i1,i2,p1,p,q,d=0,w,result{},avg{};
	string s,s1,s2;
	cin>>n>>k>>s;
	if((2*k+1)>n) cout<<"NO\n";
	else{
		f1(i,k){
			if(s[i]!=s[n-i-1]){
				ch=1;break;
			}
		}
		if(ch==1) cout<<"NO\n";
		else cout<<"YES\n";
	}
}
//nobody read comments!
int main() {
	//ios_base::sync_with_stdio(false);
    //cin.tie(NULL);
	ll t=1;
    cin>>t;
    while(t--)
    solution();
    return 0;
}


