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