#include<stdio.h>
#include<stdlib.h>
int p[10][10],n;
int check[10][10];
int g[10];
void input()
{
FILE *fp=fopen("input.txt","r");
int a,x,y,i;
fscanf(fp,"%d %d", &n, &a);
for(i=1;i<=a;i++)
{
fscanf(fp,"%d %d", &x, &y);
p[x][y]=1;
p[y][x]=1;
}
fclose(fp);
}
void process(int k, int cnt)
{ //세팅해주어야 할 것들:
//1. 다른 정점을 모두 탐색하기 전까진 시작점으로 오지 않도록 한다.
//2. 갔던 곳은 가지 않도록 한다.
int i;
if(k==1) //k가 1일때 다음 else if()문을 가지 않게 하는 기능도 한다.
{
if(cnt>n) // 다른 정점을 모두 탐색했을 경우 출력
{
printf("%d ", k);
for(i=1;i<=n;i++)
printf("%d ", g[i]);
printf("\n");
}
}
// 다른 정점을 모두 탐색하지 않았는데 k가 1이라면 return
else if(cnt <= n && k == 1)
return;
for(i=1;i<=n;i++)
{
//갈 수 있는 정점이고 탐색하지 않았던 곳이라면 탐색
if(p[k][i]==1 && check[k][i] == 0)
{
check[k][i]=1;
check[i][k]=1;
g[cnt]=i; // 경로 입력
process(i,cnt+1);
check[k][i]=0;
check[i][k]=0;
}
}
}
void main()
{
int i;
input();
process(1,1);
}