#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;
}