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>

using namespace std;

#define int long long
#define ALL(x) x.begin(), x.end()
#define RALL(x) x.rbegin(), x.rend()
#define makeVI(a, n) VI a (n); for (int i = 0; i < n; ++i) cin >> a[i];
#define makeVVI(a, n, m) VVI a (n, VI (m)); for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) cin >> a[i][j];

#define M7 1000000007
#define M9 1000000009
#define INF 2000000000000000001
#define PI 3.14159265358979324

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int, int> PII;
typedef vector<int> VI;
typedef vector<PII> VPII;
typedef vector<VI> VVI;
typedef vector<VPII> VVPII;



void solve()
{
    int Q;
    cin >> Q;
    //Q = 1;
    while (Q--) {
        int n, k;
        cin >> n >> k;

        string s;
        cin >> s;

        if (k == 0) {
            cout << "YES" << endl;
            continue;
        }

        if (2*k == n) {
            cout << "NO" << endl;
            continue;
        }

        bool fl = 0;
        for (int i = 0; i < k; ++i) {
            if (s[i] != s[n-i-1]) {
                cout << "NO" << endl;
                fl = 1;
                break;
            }
        }

        if (fl) {
            continue;
        }

        cout << "YES" << endl;
    }
}

signed main(signed argc, char **argv)
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    if (argc > 1 && (string) argv[1] == "local") {
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    }
    solve();
}
