/*
TASK:platka
LANG:C++
*/
#include<iostream>
using namespace std;
int k,rear,n,m;
int q[20005],a[1505][1505];
void dfs(int s)
{
     if(!k) return;
     q[rear]=s;
     rear++;
     for(int i=1;i<=n;i++)
       if(a[s][i]) {a[s][i]=a[i][s]=0; dfs(i);if(k){a[s][i]=a[i][s]=1;rear--;q[rear]=0;}}
     for(int p=1;p<=n;p++)
       for(int j=1;j<=n;j++)
         if(a[p][j])  return;
     k=0;
}
int main()
{
    int x,y;
    scanf("%d%d",&n,&m);
    for(int i=0;i<m;i++)
      { 
            scanf("%d%d",&x,&y);
            a[x][y]=a[y][x]=1;
      }
    k=1;
    for(int i=1;i<=n;i++)
      if(k) dfs(i);
    for(int i=0;i<rear;i++)
      printf("%d ",q[i]);
    printf("\n");
    return 0;
}
