#include <bits/stdc++.h>
using namespace std;
using ll=long long;
#define endl '\n'

void solve()
{
   int n,m;
   cin>>n>>m;
   if(m>n+1)
   {
    cout<<"NO"<<endl;
    return;
   }
   int a[n+1];
   for(int i=1;i<=n;i++)
        cin>>a[i];
    sort(a+1,a+n+1);
    int l=1,r=1;
    int ans=1;
    int cnt=0;
    for(r=2;r<=n;r++)
    {
        if(a[r]-a[r-1]>2)
        {
            cnt=0;
            l=r;
        }
        else
        {
            if(a[r]-a[r-1]==2)
                cnt++;
            while(cnt>1)
            {
                if(a[l+1]-a[l]>1)
                    cnt--;
                l++;
            }
            ans=max(ans,r-l+1);
        }

    }
    if(ans>=m-1)
        cout<<"YES"<<endl;
    else
        cout<<"NO"<<endl;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t;
    cin>>t;
    while(t--)
        solve();
    return 0;
}

双指针,需要注意的是当有两个差大于1时,两个填充都要考虑