/*
TASK: platka
LANG: C++
*/
#include <iostream>
using namespace std;
int n,m,i,c,d,j,z[20001],k,l,h[20001],o;
bool a[1501][1501],e[1501][1501],p=false;
int proc(int s, int f)
{
    z[f]=s;
    cout << s << ' ';
    if (f==m+1 and p==false) 
              for (o=1;o<=m+1;o++) { h[o]=z[o]; p=true; }  
    for (c=1;c<=n;c++) {
        if (a[s][c]==true) {
           a[s][c]=false;
           a[c][s]=false;
           proc (c, f+1);
           }
           if (c==n and a[s][c]==false) {
              a[z[f-1]][s]=true;
              a[s][z[f-1]]=true; }
              }
}
           
           
int main ()
{
    cin >> n >> m;
    for (i=1;i<=m;i++) {
        cin >> c >> d;
        a[c][d]=true;
        e[c][d]=true;
        a[d][c]=true;
        e[d][c]=true;
        }
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++) {
            if (a[i][j]==true) proc(i,1);
               for (k=1;k<=n;k++)
                   for (l=1;l<=n;l++)
                       a[k][l]=e[k][l]; 
                        }
    for (i=1;i<=m+1;i++) cout << z[i]<< ' ';
    return 0;
}
