#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
int a[500111],ord[500111],n,k;
bool cmp(int x,int y)
{
return a[x]<a[y];
}
bool check()
{
int i;
for(i=1;i<=n;i++)
{
ord[i]=i;
}
stable_sort(ord+1,ord+n+1,cmp);
vector<pair<int,int> > vs;
for(i=2;i<=n;i++)
{
if(a[ord[i]]==a[ord[i-1]])
{
int p1=ord[i-1],p2=ord[i];
if(p2-p1>=k)
{
continue;
}
int vl=p2%k,vr=(p1-1)%k;
if(vl<=vr)
{
vs.push_back(make_pair(vl,vr));
}
else
{
vs.push_back(make_pair(vl,k-1));
vs.push_back(make_pair(0,vr));
}
}
}
sort(vs.begin(),vs.end());
int MX=-1;
for(i=0;i<(int)vs.size();i++)
{
if(MX<vs[i].first-1)
{
return true;
}
MX=(MX>vs[i].second?MX:vs[i].second);
}
if(MX<k-1)
{
return true;
}
return false;
}
void solve()
{
scanf("%d%d",&n,&k);
int i;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
if(check())
{
puts("YES");
}
else
{
puts("NO");
}
}
int main()
{
int tc;
scanf("%d",&tc);
while(tc--)
{
solve();
}
return 0;
}