#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
int visit[110];
int r[110];
int graph[110][110];
vector<int> vb;
int mx;
int n,k;
int judge(int a)
{
for(int i=1;i<=n;i++)
{
if(graph[a][i])
{
if(visit[i]==1 && i!=a)
return 0;
}
}
return 1;
}
int backtrack(int node)
{
if(node>n)
{
vb.clear();
int cnt=0;
for(int i=1;i<=n;i++)
{
if(visit[i])
{
cnt++;
vb.push_back(i);
}
}
if(cnt>mx)
{
mx=cnt;
for(int i=0;i<vb.size();i++)
r[i+1]=vb[i];
}
}
else
{
visit[node]=0;
backtrack(node+1);
visit[node]=1;
if(judge(node))
backtrack(node+1);
visit[node]=0;
}
}
int main()
{
int t,a,b;
cin>>t;
while(t--)
{
memset(visit,0,sizeof(visit));
memset(graph,0,sizeof(graph));
cin>>n>>k;
for(int i=0;i<k;i++)
{
cin>>a>>b;
graph[a][b]=1;
graph[b][a]=1;
}
mx=0;
backtrack(1);
cout<<mx<<"\n";
for(int i=1;i<=mx;i++)
cout<<r[i]<<(i!=(mx)?" ":"\n");
}
return 0;
}