#把sums元素和对应的位置index组成字典
#把sums排序,在排序后的sums取sum[i:i+m]个元素,判断这m个元素在原sums中的位置是不是连续的
def solve(sums):
    #把sums中的元素值和对应的位置index组成字典
    dict_sums = {v:k for k,v in enumerate(sums)}
    #若sums中元素有相同的,组成字典的长度是小于sums的长度,直接返回“NO”
    if len(dict_sums) != len(sums):
        return "NO"
    #对sums升序排序
    sums = sorted(sums)
    #遍历排序后的sums
    for i in range(n):
        #这里判断严格递增的。i+m必须小于等于n,否则sums[i+m]超出了列表的范围
        if i + m <=n:
            #这里判断从位置i到i+m-1之间m个递增元素在原sums中的位置是不是连续的
            if all(dict_sums[sums[j+1]] == dict_sums[sums[j]] + 1 for j in range(i,i+m-1)):
                return "YES"
        #这里判断严格递减的。i+1-m >必须大于等于0,否则sums[i+1-m]超出了列表的范围
        if i+1-m >=0:
            #这里判断从位置i到i+1-m之间m个递减元素在原sums中的位置是不是连续的
            if all(dict_sums[sums[j]] + 1 == dict_sums[sums[j-1]] for j in range(i,i+1-m,-1)) :
                return "YES"    
    return "NO"

T = int(input())
for _ in range(T):
    n,m = map(int,input().split())
    sums = list(map(int, input().split()))
    print(solve(sums))