/*
TASK:platka
LANG:C++
*/
#include <iostream>
//#include <vector>
using namespace std;
//vector <int> v[1500];
bool f=false;
int n,m;
int c[20001],a[1501][1501],b[1501];
void krai()
{
     int ii;
     for (ii=0; ii<m; ii++)
      cout << c[ii] << ' ';
     cout << c[m] << '\n';
}
void dfs(int u, int brr)
{
     if (f==true) return;
     int ii,jj;
     cout << u << endl;
     brr++;
     c[brr]=u;
     a[u][c[brr-1]]=0;
     a[c[brr-1]][u]=0;
     if (brr==m)
      {
               krai();
               f=true;
               a[u][c[brr-1]]=1;
               a[c[brr-1]][u]=1;
               brr--;
               return;
      }
     for (ii=1; ii<=n; ii++)
      if (a[u][ii]==1)
       dfs(ii, brr);
     brr--;
     a[u][c[brr]]=1;
     a[c[brr]][u]=1;
     cout << "nazad kum " << c[brr]<< '\n';
}     
int main()
{
    int i,j,x,y,br=0;
    int b[1500],;
    cin >> n >> m;
    for (i=1; i<=n; i++)
    {
        b[i]=0;
        for (j=1; j<=n; j++)
         a[i][j]=0;
    }
    for (i=1; i<=m; i++)
    {
        cin >> x >> y;
        b[x]++;
        b[y]++;
        //v[x].push_back(y);
        //v[y].push_back(x);
        a[x][y]=1;
        a[y][x]=1;
    }
    x=9999;
    for (i=1; i<=n; i++)
     if (b[i]%2!=0) {br++; if (i<x) x=i;}
    if (br!=0 && br!=2)
    {
              cout << "Sorry, Pesho ";
              if (br==1) cout << '1'; else cout << br-2;
              return 0;
    }
    if (x==9999) x=1;
    dfs(x, -1);
    return 0;
}
        
