#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define loop(i,a,b) for(ll i = (ll)a ; i < (ll)b ; i++)
#define rtloop(i,a,b) for(ll i = (ll)a; i >= (ll)b; i--)
#define pb push_back
#define mp make_pair
#define yo(a) cerr <<#a <<" = " << a <<"\n";
#define COOL ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
void solve(){
ll t;
cin >> t;
while(t--){
ll n, k;
cin >> n >> k;
ll a[n+1];
map<ll,ll> m;
vector<pair <ll,ll> >v;
loop(i,1,n+1){
cin >> a[i];
v.pb(mp(a[i], i));
m[a[i]]++;
}
sort(v.begin(), v.end());
if(k == 1){
cout << "yes\n";
continue;
}
ll i = 1;
bool fl = 0;
ll curr;
ll summ = 0;
vector<pair<ll,ll> > :: iterator it = v.begin();
while(it != v.end()){
summ = 0;
auto it2 = it;
it2 ++;
summ += (abs(it -> second - i)%k);
while(it2 != v.end() && it2 -> first == it -> first){
i++;
summ += (abs(it2 -> second - i)%k);
it2++;
}
if(summ % k != 0){
fl = 1;
break;
}
it = it2;
i++;
}
if(fl)cout <<"no\n";
else cout << "yes\n";
}
}
int main() {
#ifndef ONLINE_JUDGE
freopen("inn.txt", "r", stdin);
freopen("op.txt", "w", stdout);
#endif
COOL
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKI2RlZmluZSBsb29wKGksYSxiKSBmb3IobGwgaSA9IChsbClhIDsgaSA8IChsbCliIDsgaSsrKQojZGVmaW5lIHJ0bG9vcChpLGEsYikgZm9yKGxsIGkgPSAobGwpYTsgaSA+PSAobGwpYjsgaS0tKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHlvKGEpIGNlcnIgPDwjYSA8PCIgPSAiIDw8IGEgPDwiXG4iOwojZGVmaW5lIENPT0wgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7Y2luLnRpZShOVUxMKTtjb3V0LnRpZShOVUxMKTsKCgoKdm9pZCBzb2x2ZSgpewogICAgbGwgdDsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUodC0tKXsKICAgICAgICBsbCBuLCBrOwogICAgICAgIGNpbiA+PiBuID4+IGs7CiAgICAgICAgbGwgYVtuKzFdOwogICAgICAgIG1hcDxsbCxsbD4gbTsKICAgICAgICB2ZWN0b3I8cGFpciA8bGwsbGw+ID52OwogICAgICAgIGxvb3AoaSwxLG4rMSl7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgICAgICB2LnBiKG1wKGFbaV0sIGkpKTsKICAgICAgICAgICAgbVthW2ldXSsrOwogICAgICAgIH0KICAgICAgICBzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSk7CiAgICAgICAgaWYoayA9PSAxKXsKICAgICAgICAgICAgY291dCA8PCAieWVzXG4iOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgbGwgaSA9IDE7CiAgICAgICAgYm9vbCBmbCA9IDA7CiAgICAgICAgbGwgY3VycjsKICAgICAgICBsbCBzdW1tID0gMDsKICAgICAgICB2ZWN0b3I8cGFpcjxsbCxsbD4gPiA6OiBpdGVyYXRvciBpdCA9IHYuYmVnaW4oKTsKICAgICAgICB3aGlsZShpdCAhPSB2LmVuZCgpKXsKICAgICAgICAgICAgc3VtbSA9IDA7CiAgICAgICAgICAgIGF1dG8gaXQyID0gaXQ7CiAgICAgICAgICAgIGl0MiArKzsKICAgICAgICAgICAgc3VtbSArPSAoYWJzKGl0IC0+IHNlY29uZCAtIGkpJWspOwogICAgICAgICAgICB3aGlsZShpdDIgIT0gdi5lbmQoKSAmJiBpdDIgLT4gZmlyc3QgPT0gaXQgLT4gZmlyc3QpewogICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgICAgc3VtbSArPSAoYWJzKGl0MiAtPiBzZWNvbmQgLSBpKSVrKTsKICAgICAgICAgICAgICAgIGl0MisrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKHN1bW0gJSBrICE9IDApewogICAgICAgICAgICAgICAgZmwgPSAxOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaXQgPSBpdDI7CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgaWYoZmwpY291dCA8PCJub1xuIjsKICAgICAgICBlbHNlIGNvdXQgPDwgInllc1xuIjsKICAgIH0KCgoKfQoKCgppbnQgbWFpbigpIHsKICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICAgICAgZnJlb3BlbigiaW5uLnR4dCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIm9wLnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgICNlbmRpZgogICAgQ09PTAogICAgc29sdmUoKTsKICAgIAogICAgICAgIAoKCiAgICByZXR1cm4gMDsKfQoKCgo=