#include <iostream> #include <algorithm> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> using namespace std; int m,n,k,maxn,num=0; int a[110][110],vis[110],b[110],final[110]; void dfs(int x,int color) { int i; if(x>n) { if(color>maxn) { maxn=color; memcpy(final,vis,sizeof(vis)); } return ; } int ok=1; for(i=1;i<=n;i++) { if(a[x][i]&&vis[i]==1) { ok=0; break; } } if(ok)//涂黑色时有矛盾,剪枝 { vis[x]=1; dfs(x+1,color+1); vis[x]=0; } dfs(x+1,color); } int main() { int i,j,u,v,ok,sum; //freopen("D:\\in.txt","r",stdin); scanf("%d",&m); while(m--) { memset(a,0,sizeof(a)); memset(vis,0,sizeof(vis)); scanf("%d%d",&n,&k); for(i=0;i<k;i++) { scanf("%d%d",&u,&v); a[u][v]=a[v][u]=1; } maxn=0; dfs(1,0); printf("%d\n",maxn); ok=0; for(i=1;i<=n;i++) if(final[i]==1) { if(ok)printf(" "); printf("%d",i); ok=1; } printf("\n"); } return 0; }