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.
import java.math.BigInteger;
import static java.lang.Math.max;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Random;
import java.util.Stack;
import java.util.TreeMap;
import java.util.Vector;
import java.util.Scanner;

public class ahh {
//trihund
	static Scanner scn = new Scanner(System.in);
	public static int a;
	int k = 10;

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int t = scn.nextInt();
		while (t-- > 0) {
			int n = scn.nextInt(), k = scn.nextInt();
			String str = scn.next();
			if (k == 0)
				System.out.println("YES");
			else {
				int i = 0, j = n - 1, c = 0;
				while (i <= j && str.charAt(i) == str.charAt(j)) {
					c++;
					i++;
					j--;
				}
				if (n % 2 == 0) 
				{
					if (k <= c && k < n / 2) {
						System.out.println("YES");
					}
					else
						System.out.println("NO");
				}
				else
				{
					if(k<=c)
						System.out.println("YES");
					else
						System.out.println("NO");
				}
			}
		}
	}

	public static void fac(int n) {
		BigInteger b = new BigInteger("1");
		for (int i = 1; i <= n; i++) {
			b = b.multiply(BigInteger.valueOf(i));
		}
		System.out.println(b);

	}

	public static void q2() {
		int t = scn.nextInt();
		while (t-- > 0) {
			int n = scn.nextInt(), k = scn.nextInt();

		}
	}

	static void ruffleSort(long[] a) {
		int n = a.length;
		Random r = new Random();
		for (int i = 0; i < a.length; i++) {
			int oi = r.nextInt(n);
			long temp = a[i];
			a[i] = a[oi];
			a[oi] = temp;
		}
		Arrays.sort(a);
	}

	public static long gcd(long a, long b) {
		while (b > 0) {
			long c = a % b;
			a = b;
			b = c;
		}
		return a;
	}

}

class p {
	long x, y;

	p(long a, long b) {
		this.x = a;
		this.y = b;
	}
}

class pair {
	int x, y;

	pair(int a, int b) {
		this.x = a;
		this.y = b;
	}

	public int hashCode() {
		return x * 31 + y * 31;
	}

	public boolean equals(Object other) {
		if (this == other)
			return true;

		if (other instanceof pair) {
			pair pt = (pair) other;

			return pt.x == this.x && pt.y == this.y;
		} else
			return false;
	}

}

class sort implements Comparator<p> {

	@Override
	public int compare(p o1, p o2) {
		// TODO Auto-generated method stub
		long a = o1.x - o2.x, b = o1.y - o2.y;
		if (b < 0)
			return -1;
		else if (a == 0) {
			if (a < 0)
				return -1;
			else
				return 1;
		} else
			return 1;

	}

}