1 #include <stdio.h>
2 #include <string.h>
3 int p[101][101];//标记边
4 int o[101];//标记点
5 int num[101];//存遍历完的点
6 int z;
7 //dfs算法
8 void dfs(int k,int v)
9 {
10 int j;
11 o[v] = 1;
12 num[z++] = v;
13 for(j = 0;j <= k-1;j ++)
14 {
15 if(p[v][j] == 1 && o[j] == 0)
16 {
17 dfs(k,j);
18 }
19 }
20 }
21
22 int main()
23 {
24 int n,k,m,u,v,i,j,t;
25 scanf("%d",&n);
26 while(n--)
27 {
28 memset(p,0,sizeof(p));
29 memset(o,0,sizeof(o));
30 memset(num,0,sizeof(num));
31 scanf("%d%d",&k,&m);
32 z = 0;
33 t = 0;
34 for(i=1;i<=m;i++)
35 {
36 scanf("%d%d",&u,&v);
37 p[v][u]=1;
38 p[u][v]=1;
39 }
40 for(i=0;i<=k-1;i++)
41 {
42 for(j=0;j<=k-1;j++)
43 {
44 if(p[i][j]==1)
45 {
46 dfs(k,i);
47 t = 1;
48 break;
49 }
50 }
51 if(t) break;
52 }
53 for(i=0;i<=z-1;i++)
54 {
55 if(i!=z-1)
56 printf("%d ",num[i]);
57 else
58 printf("%d\n",num[i]);
59 }
60 }
61 }