#include<iostream>
#include<vector>
#include<map>
#include<set>
#include<algorithm>
#include<cstdio>
#include<functional>
#include<cstdlib>
#include<ctime>
#include<cassert>
#include<iomanip>
#include<string>
#include<cstring>
#include<cctype>
#include<cmath>
#include<list>
#include<iterator>
using namespace std;
typedef long long ll;
#define FRN(i,a,b) for(ll i=a;i<(ll)b;i++)
#define pb push_back
#define mp make_pair
#define INF 100000
#define MOD 1000000007
typedef vector<ll> vi;
typedef vector<vector<ll> > vvi;
typedef vector<string> vs;
typedef vector<double> vd;
typedef pair<ll,ll> pi;
typedef map<ll,ll> mii;
typedef map<string,ll> msi;
typedef map<ll,string> mis;
typedef vector<pair<int,int> > vp;
typedef set<ll> si;
typedef set<string> ss;
using namespace std;
main(){
double EPS=.0000000001;
int n,m,T,x,y;
cin>>T;
while(T--){
cin>>n>>m;
double a[n][n];
for(ll j=0;j<m;j++){
cin>>x>>y;
if(x>y){
double ttt=x*y;
a[x-1][y-1]=-ttt;
a[y-1][x-1]=ttt;
}
if(x<y){
ll ttt=x*y;
a[x-1][y-1]=ttt;
a[y-1][x-1]=-ttt;
}
}
for(int i=0;i<n;i++)a[i][i]=0;
double det = 1;
for (int i=0;i<n;++i) {
int k = i;
for (int j=i+1;j<n;++j)
if (abs(a[j][i])>abs(a[k][i]))
k=j;
if (abs(a[k][i])<EPS) {
det = 0;
break;
}
for(int s=i;s<n;s++){
double tmp=a[i][s];
a[i][s]=a[k][s];
a[k][s]=tmp;
}
if(i!=k)
det =-det;
det= (det*a[i][i]);
for (int j=i+1;j<n;++j)
a[i][j]/= a[i][i];
for (int j=0;j<n;++j)
if (j!=i&&abs(a[j][i])>EPS)
for (int k=i+1;k<n;++k)
a[j][k]= (a[j][k]-(a[i][k]*a[j][i]));
/*for(ll i=0;i<n;i++){
for(ll j=0;j<m;j++)cout<<" "<<a[i][j];
cout<<endl;
}*/
}
if(det)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8bWFwPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxmdW5jdGlvbmFsPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjdGltZT4KI2luY2x1ZGU8Y2Fzc2VydD4KI2luY2x1ZGU8aW9tYW5pcD4KI2luY2x1ZGU8c3RyaW5nPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxjY3R5cGU+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxsaXN0PgogI2luY2x1ZGU8aXRlcmF0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgIGxvbmcgbG9uZyBsbDsKI2RlZmluZSBGUk4oaSxhLGIpIGZvcihsbCBpPWE7aTwobGwpYjtpKyspCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyIAojZGVmaW5lIElORiAxMDAwMDAKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwp0eXBlZGVmICB2ZWN0b3I8bGw+IHZpOwp0eXBlZGVmICB2ZWN0b3I8dmVjdG9yPGxsPiA+IHZ2aTsKdHlwZWRlZiAgdmVjdG9yPHN0cmluZz4gdnM7CnR5cGVkZWYgIHZlY3Rvcjxkb3VibGU+IHZkOwp0eXBlZGVmICBwYWlyPGxsLGxsPiBwaTsKdHlwZWRlZiAgbWFwPGxsLGxsPiBtaWk7CnR5cGVkZWYgIG1hcDxzdHJpbmcsbGw+IG1zaTsKdHlwZWRlZiAgbWFwPGxsLHN0cmluZz4gbWlzOwp0eXBlZGVmICB2ZWN0b3I8cGFpcjxpbnQsaW50PiA+IHZwOwp0eXBlZGVmICBzZXQ8bGw+IHNpOwp0eXBlZGVmICBzZXQ8c3RyaW5nPiBzczsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCm1haW4oKXsKCWRvdWJsZSBFUFM9LjAwMDAwMDAwMDE7CglpbnQgbixtLFQseCx5OwoJY2luPj5UOwoJd2hpbGUoVC0tKXsKCSBjaW4+Pm4+Pm07CgkgZG91YmxlIGFbbl1bbl07CgkgZm9yKGxsIGo9MDtqPG07aisrKXsKCSBjaW4+Png+Pnk7CgkgIGlmKHg+eSl7CgkgIAlkb3VibGUgdHR0PXgqeTsKCSAgCWFbeC0xXVt5LTFdPS10dHQ7CgkgIAlhW3ktMV1beC0xXT10dHQ7CgkgIH0KCSAgaWYoeDx5KXsKCSAgCWxsIHR0dD14Knk7CgkgIAlhW3gtMV1beS0xXT10dHQ7CgkgIAlhW3ktMV1beC0xXT0tdHR0OwoJICB9Cgl9Cglmb3IoaW50IGk9MDtpPG47aSsrKWFbaV1baV09MDsKCWRvdWJsZSBkZXQgPSAxOwpmb3IgKGludCBpPTA7aTxuOysraSkgewoJaW50IGsgPSBpOwoJZm9yIChpbnQgaj1pKzE7ajxuOysraikKCQlpZiAoYWJzKGFbal1baV0pPmFicyhhW2tdW2ldKSkKCQkJaz1qOwoJaWYgKGFicyhhW2tdW2ldKTxFUFMpIHsKCQlkZXQgPSAwOwoJCWJyZWFrOwoJfQoJZm9yKGludCBzPWk7czxuO3MrKyl7Cglkb3VibGUgdG1wPWFbaV1bc107CglhW2ldW3NdPWFba11bc107CglhW2tdW3NdPXRtcDsKCX0KCWlmKGkhPWspCgkJZGV0ID0tZGV0OwoJZGV0PSAoZGV0KmFbaV1baV0pOwoJZm9yIChpbnQgaj1pKzE7ajxuOysraikKCQlhW2ldW2pdLz0gYVtpXVtpXTsKCWZvciAoaW50IGo9MDtqPG47KytqKQoJCWlmIChqIT1pJiZhYnMoYVtqXVtpXSk+RVBTKQoJCQlmb3IgKGludCBrPWkrMTtrPG47KytrKQoJCQkJYVtqXVtrXT0gKGFbal1ba10tKGFbaV1ba10qYVtqXVtpXSkpOwoKLypmb3IobGwgaT0wO2k8bjtpKyspewoJZm9yKGxsIGo9MDtqPG07aisrKWNvdXQ8PCIgICI8PGFbaV1bal07Cgpjb3V0PDxlbmRsOwp9Ki8KfQppZihkZXQpY291dDw8IllFUyI8PGVuZGw7CmVsc2UgY291dDw8Ik5PIjw8ZW5kbDsgCn0KCn0=