#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
const int maxn=1002;
vector<int> graph[maxn];
int n,m,cnt,in;
bool visited[maxn];
void dfs(int v)
{
for(int i=0;i<graph[v].size();i++)
{
int e=graph[v][i];
if(!visited[e])
{
cnt++;
if(graph[e].size()%2)
in++;
visited[e]=true;
dfs(e);
}
}
}
int main()
{
int t;
cin>>t;
while (t--) {
cin>>n>>m;
for(int i=0;i<=n;i++)
graph[i].clear();
for(int i=0;i<m;i++)
{
int x,y;
cin>>x>>y;
graph[x].push_back(y);
graph[y].push_back(x);
}
cnt=0;
in=0;
memset(visited,false,sizeof(visited));
dfs(1);
if((m==0&&n==1)||(cnt==n&&(in==0||in==2)))
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
}