#include <iostream>
#include <map>
#include <vector>
using namespace std;
/*
 最朴素的想法。如果而后单调,那么肯定满足一下条件:
 1. 不包含重复元素。
 2. 原始数组存在一个至少长度为m的严格递增或者递减序列。

 这里我们使用map记录元素值和元素原始序号,map会自动根据插入的key排序,所以最终的map为递增key,如果想要满足2条件,只需要验证存在至少长度为m的value的数值(即原始序号)为严格递减或者递增。
*/

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n, m;
        cin >> n >> m;
        map<int, int> mm;

        for (int i = 0; i < n; i++) {
            int t;
            cin >> t;
            mm.insert(make_pair(t, i));//记录元素数值和原始序号
        }
        if (n!=mm.size()) {
            //如果这里,说明存在重复元素,直接NO
            cout<<"NO"<<endl;
            continue;
        }
        if (m==1) {
            //如果m=1直接YES
            cout<<"YES"<<endl;
            continue;
        }
        int front = -1;//记录上一个元素数值
        int si_s = 1;//记录递增序列大小
        int si_j = 1;//记录递减序列大小
        bool f = false;//记录是否找到m个单调序列
        for (auto p : mm) {
            if (front == -1) {
                front = p.second;
                continue;
            }
            //判断是否严格递增
            if ((p.second - front) == 1) {
                si_s++;
                si_j = 1;
                if (si_s == m) {
                    cout << "YES" << endl;
                    f = true;
                    break;
                }
            } else {
                si_s = 1;
            }
            //判断是否严格递减
            if ((p.second - front) == -1) {
                si_j++;
                si_s = 1;
                if (si_j == m) {
                    f = true;
                    cout << "YES" << endl;
                    break;
                }
            } else {
                si_j = 1;
            }
            front = p.second;
        }
        if (!f) {
            cout << "NO" << endl;
        }

    }
}