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 by pk_pawankushwaha
#include<bits/stdc++.h>
#include<string>
using namespace std;
#define ll long long int
#define tc ll tetra;cin>>tetra;while(tetra--)
#define lp(i,j,k) for(ll i=j;i<k;i++)
#define lpr(i,j,k) for(ll i=j;i>=k;i--)
#define F first
#define S second
#define mod 1000000007
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);
#define vec(pk,pk1) vector<ll> pk(pk1,0)
#define vin(pk,pk1) vector<ll> pk(pk1,0);lp(i,0,pk1)cin>>pk[i]
#define vect(mc) vector<ll> mc
#define vpair(love_pair) vector<pair<ll,ll> > love_pair
#define pb(x) push_back(x)
#define pbp(x,y) push_back(make_pair(x,y))
#define LB(tector,search) lower_bound(tector.begin(),tector.end(),search)
#define UB(tector,search) upper_bound(tector.begin(),tector.end(),search)
#define all(lol) lol.begin(),lol.end()
#define fileinput freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);

ll power(ll x,ll n){if(n==0) return 1; if(n%2) return x*power(x*x,(n-1)/2);else return power(x*x,n/2);}
ll gcd(ll a,ll b){if(b==0) return a; else return gcd(b,a%b);}
ll highestPowerof2(ll n) { ll res = 0; for (int i=n; i>=1; i--) { if ((i & (i-1)) == 0) { res = i; break;  }  }  return res; } 

/*int sieve[1000001];
void sieve_cal(){
	sieve[1]=1;
	lp(i,2,1000){
		if(sieve[i]==0){
			for(int j=i*i;j<=1000001;j+=i){
				sieve[j]=1;
			}
		}
	}
}*/
int main()
{
	fast
	tc{
		
		string s;ll k,n,c=0;cin>>n>>k>>s;
		lp(i,0,n/2){
			if(s[i]==s[n-i-1]){
				c+=1;
			}
			else break;
		}
		
		if(k==0||c>k||(c==k&&n%2==1))cout<<"YES"<<endl;
		else cout<<"NO"<<endl;
	}
	
}
