#include<iostream> int num,zu; int a[50][2]={0}; int visit[11]={0}; int data[11][11]={0}; int tou=0; int wei=1; int last; int flag=0; int k=0; int d[11][11]={0}; int r=0; typedef struct node { int x; int pre; }node; node point[10000]={0}; int l=0; int b[1000]={0}; void prin(int i) { if(i==-1) return; //printf("(%d,%d)\n",dui[i].x ,dui[i].y ); prin(point[i].pre); b[l]=point[i].x; l++; //printf("%d",point[i].x); } void p(int i) { if(i==-1) return; p(point[i].pre); printf("%d",point[i].x); } int panduan() { int m=-1; for(int i=0;i<1000;i++) { if(b[i]!=0) { m++; }else { break; } } for(int i=m-1;i>=0;i--) { if(b[i]==b[m]) { r=i; return 1; } } return 0; } void bfs() { int tou=0; int wei=1; while(tou<wei) { last=tou; prin(tou); if(panduan()) { flag=1; for(int i=r;i<1000;i++) { if(b[i]!=0) printf("%d",b[i]); } } l=0; for(int i=0;i<10;i++) b[i]=0; for(int k=1;k<=num;k++) { if(data[point[tou].x][k]==1) { data[point[tou].x][k]=0; point[wei].x=k; //printf("%d",point[wei].x); point[wei].pre=tou; wei++; } } tou++; } } int main() { freopen("input.txt","r",stdin); scanf("%d%d",&num,&zu); for(int i=0;i<zu;i++) { for(int j=0;j<2;j++) { scanf("%d",&a[i][j]);} } for(int i=0;i<=zu;i++) { data[a[i][0]][a[i][1]]=1; } for(int i=1;i<=num;i++) { for(int j=1;j<=num;j++) { d[i][j]=data[i][j]; } } for(int i=1;i<=num;i++) for(int j=1;j<=num;j++) { if(flag==0){ if(data[i][j]==1) { //data[i][j]=0; for(int u=1;u<=num;u++) { for(int t=1;t<=num;t++) { d[u][t]=data[u][t]; } } int tou=0; point[tou].x=i; point[tou].pre=-1; bfs(); } } } }