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<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>

#define rep(i, a, n) for (ll  i=a;i<=n;i++)
#define per(i, a, n) for (ll  i=a;i>=n;i--)
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
#pragma GCC optimize(3)//O3
#pragma GCC optimize(2)//O2
//#define endl "\n"
#define Mod(x) x % mod
#define toNum(x) x -'0'
#define fi first
#define se second
#define mm(a, b) memset(a,b, sizeof(a));
#define dbg(x) cout << #x << "=" << x << endl;
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll> PII;
const ll maxn = 3e6 + 10;
const ll mod = 1e9 + 7;
const ll N = 1e6 + 10;
const ll INF = 0x3f3f3f3f;
#define cf ll  t;cin>>t;while (t--) solve();
int n, m, sum, cnk, maxx, minn = INF, u, l, r, pre, op, p, k, z, ok, x, y, temp, q, sum1, sum2, A, B, cnt, ans, b, ask, t, nums, len;
char s[110];

void solve() {
    cin >> n >> k >> s + 1;
    sum = 0;
    for (int i = 1, j = n; j > i; i++, j--) {
        if (s[i] == s[j]) {
            sum++;
        } else break;
    }
    if(!(n & 1) && k == n / 2) puts("NO");
    else if (k <= sum) puts("YES");
    else puts("NO");
}

int main() {
    IOS;
    cf;
    return 0;
}