package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
var T int
var n,k int
fmt.Fscan(in, &T)
for t := 1;t<=T; t++{
fmt.Fscan(in, &n,&k)
var s string
fmt.Fscan(in, &s)
if check(s,k) {
fmt.Println("YES")
} else {
fmt.Println("NO")
}
}
}
func check(s string,k int) bool {
cnt := 0
for i:=0;i<len(s)/2;i++{
if s[i] != s[len(s)-1-i] {
cnt++
}
}
// 这里代表,如果前后不同的个数正好为K,或者K比实际多时,看字符串的长度
if cnt == k || k > cnt && ((k-cnt) % 2 == 0 ||len(s) % 2 != 0){
return true
}
return false
}