#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=5e5+10;
int T,n,m,head[N],du[N],f[N],pre[N],cnt,sb,S,Ans[N];
struct Edge
{
int nxt,v;
}e[N<<1];
void add(int u,int v)
{
e[++cnt].nxt=head[u];
e[cnt].v=v;
head[u]=cnt;
}
int bfs(int s)
{
queue<int> q;
q.push(s);f[s]=1;
f[S]=1;pre[s]=0;
while(!q.empty())
{
int u=q.front();q.pop();
if(du[u]==1&&u!=s)return u;
f[u]=1;
for(int i=head[u];i;i=e[i].nxt)
{
int v=e[i].v;
if(!f[v])
{
f[v]=1;
q.push(v);
pre[v]=u;
}
}
}
return 0;
}
int dfs(int u,int fa)
{
if(f[u]==3)
{
sb=1;
return u;
}
f[u]=3;
for(int i=head[u];i;i=e[i].nxt)
{
int v=e[i].v;
if(du[v]==2&&v!=fa)
{
pre[v]=u;
int x=dfs(v,u);
if(sb)return x;
}
}
return 0;
}
int main()
{
scanf("%d",&T);
int x=0;
while(T--)
{
cnt=sb=S=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)head[i]=e[i].v=e[i].nxt=du[i]=pre[i]=f[i]=Ans[i]=0;
for(int i=1;i<=m;i++)
{
int u,v;
scanf("%d%d",&u,&v);
du[u]++;du[v]++;
add(u,v);add(v,u);
}
int p=1;
for(int i=1;i<=n;i++)
{
du[i]%=3;
if(du[i]==0)
{
if(n==1)puts("No");
else
{
puts("Yes");
printf("%d\n",n-1);
for(int j=1;j<=n;j++)if(j!=i)printf("%d ",j);
printf("\n");
}
p=0;break;
}
}
if(p)
for(int i=1;i<=n;i++)
{
if(du[i]==1)
{
for(int j=1;j<=n;j++)f[j]=0;
int x=bfs(i);
if(x)
{
int ans=0;
for(int j=x;j;j=pre[j])f[j]=2;
for(int j=1;j<=n;j++)if(f[j]!=2)ans++;
if(ans==n||ans==0)cout<<"No\n";
else
{
puts("Yes");
printf("%d\n",ans);
for(int j=1;j<=n;j++)if(f[j]!=2)printf("%d ",j);
printf("\n");
}
p=0;break;
}
}
}
if(p)
{
for(int i=1;i<=n;i++)
{
if(du[i]==2)
{
for(int j=1;j<=n;j++)f[j]=0;
int x=dfs(i,0);
if(x)
{
int ans=1;
f[x]=114514;
for(int j=pre[x];j!=x&&j;j=pre[j])
{
ans++,f[j]=114514;
}
if(ans==n||ans==0)
{
puts("No");
p=0;break;
}
puts("Yes");
printf("%d\n",n-ans);
for(int j=1;j<=n;j++)if(f[j]!=114514)printf("%d ",j);
printf("\n");
p=0;break;
}
}
}
}
if(p)
{
for(int i=1;i<=n;i++)f[i]=pre[i]=0;
for(int i=1;i<=n;i++)
{
if(du[i]==1)
{
for(int j=head[i];j;j=e[j].nxt)du[e[j].v]--;
f[i]=1;
S=i;
du[i]=0;pre[i]=0;Ans[1]=i;
break;
}
}
int ans=1;
for(int i=1;i<=n;i++)
{
if(du[i]==1&&!f[i])
{
int x=bfs(i);
for(int j=x;j;j=pre[j])Ans[++ans]=j;
}
}
for(int i=1;i<=ans;i++)f[Ans[i]]=114514;
ans=0;
for(int i=1;i<=n;i++)if(f[i]!=114514)ans++;
if(ans==n||ans==0)puts("No");
else
{
puts("Yes");
printf("%d\n",ans);
for(int i=1;i<=n;i++)if(f[i]!=114514)printf("%d ",i);
printf("\n");
}
}
}
return 0;
}