1005 Median

#include<iostream>
#include<cstring>
#include<queue>
#include<map>
#include<set>
#include<algorithm>
#include<cmath>
#include<vector>

#define fi first
#define se second

#define lowbit(x) (x&-x)

using namespace std;

namespace ae86{
    const int bufl=1<<15;
    char buf[bufl],*s=buf,*t=buf;
    inline int fetch(){
        if(s==t){t=(s=buf)+fread(buf,1,bufl,stdin);if(s==t)return EOF;}
        return*s++;
    }
    inline int read(){
        int a=0,b=1,c=fetch();
        while(!isdigit(c))b^=c=='-',c=fetch();
        while(isdigit(c))a=a*10+c-48,c=fetch();
        return b?a:-a;
    }
}
using ae86::read;

typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,double> pid;

const int inf=0x3f3f3f3f;
const ll INF=2e18;
const double eps=1e-8;
const double pi=acos(-1);
const int mod=1e9+7;

const double eps = 1e-6;
const int N = 2e5 + 10;
using namespace std;
int mod=1e9+7;
bool st[100000+9];
void solve() {
    int a,b,n,m;
    memset(st,0,sizeof(st));
    cin>>n>>m;
    for(int i=0;i<m;i++){
        cin>>a;
        st[a]=true;
    }st[n+1]=true;
    int ast=0,akt=0,ans=0,ma=-1,sum=0;
    for(int i=1;i<=n+1;i++){
        if(!st[i])ans++;
        else {

            if(ma<=ans){
            ma=ans;
            akt=ast;   
            }
            sum+=ans;
            ans=0;ast++;
        }
    }
    if(ma-akt<=sum-ma)cout<<"YES\n";
    else cout<<"NO\n";
}
int main() {
    ios::sync_with_stdio(0);
    int tt;
    cin>>tt;
    while(tt--)
    solve();
    return 0;
}