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
}