#include<bits/stdc++.h>
#define pb push_back
#define PI 3.141592653589793238462643383279502884197169399375
#define inf 100000000000000000
#define mod 1000000007
#define NMAX 200005

using namespace std;

typedef int64_t ll;

ll smaller(vector<pair<ll, pair<ll,ll> > >& v, vector<ll>& minIdx, pair<ll,ll> p)
{
//cout<<"here"<<endl;
    ll x = p.first, y = p.second, n = v.size();

    ll idx = -2;

    ll st=0, e = n-1;

    while(st<=e)
    {
        ll mid = (st+e)/2;

        if(v[mid].first<x)
        {
            idx = mid;
            st = mid+1;
        }
        else
        {
            e = mid-1;
        }

    }

    if(idx>=0)
    {
        idx = minIdx[idx];

        if(v[idx].second.first>=y)
        {
            idx = -2;
        }
        else
        {
            idx = v[idx].second.second;
        }

    }

    return idx+1;

}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    ll t; cin>>t;

    while(t--)
    {
        ll n, m; cin>>n>>m;

        map<ll, vector<ll> > mymap;

        for(ll i=0; i<m; ++i)
        {
            ll x,y; cin>>x>>y;

            mymap[y].pb(x);
        }

        string ans = "YES";

        for(map<ll,vector<ll> >::iterator it=mymap.begin(); it!=mymap.end(); )
        {
            //pair<ll, vector<ll> >& p = (*it);

            if((*it).second.size()>1)
            {
                ++it;
                continue;
            }

            map<ll,vector<ll> >::iterator it2 = it;

            ++it2;

            if(it2==mymap.end() || (*it2).second.size()>1)
            {
                ans = "NO";
                break;
            }

            ll x1 = (*it).second.at(0);
            ll x2 = (*it2).second.at(0);

            ll dif = (*it2).first - (*it).first;
            bool parity = (dif&(ll)1);

            if(parity != (x1==x2))
            {
                ans = "NO";
                break;
            }

            it = it2;
            ++it;

        }

        cout<<ans<<endl;

    }

    return 0;
}













