搞不懂#1和#3为啥错,球球大佬看一下
#include<bits/stdc++.h>
using namespace std;
int T,n,m,k,f[100005];
int main(){
cin>>T;
while(T--){
priority_queue<int>q;
cin>>m>>n>>k;
for(int i=1;i<=n;i++){
cin>>f[i];
}
int now=1;//指针
for(int i=1;i<=m;i++){
while((!q.empty())&&-q.top()<i+k&&-q.top()>=i){
q.pop();//归档
}
while(q.size()<k&&now<=n){
if(f[now]<i||f[now]>=i+k)q.push(-f[now]);//不能直接归档的
now++;
}
}
if(q.empty()&&now==n+1)cout<<"YE5\n";
else cout<<"N0\n";//不要在意0和5。。。
}
return 0;
}