/*
TASK:platka
LANG:C++
*/
#include<iostream>
using namespace std;
int k,rear,n,m;
int q[20005],a[1505][1505],used[1505],br,t[1505],mi=1500;
void dfs(int s)
{
     br=0;
     if(!k) return;
     used[s]=1;
     q[rear]=s;
     rear++;
     for(int i=1;i<=n;i++)
       if(a[s][i]) {
                    a[s][i]=a[i][s]=0;
                    t[s]--;
                    t[i]--;
                    dfs(i);
                    if(k){ 
                           used[s]=0; 
                           a[s][i]=a[i][s]=1;
                           t[s]++;
                           t[i]++;
                           rear--;
                           q[rear]=0;
                          }
                   } 
     for(int i=1;i<=n;i++)
       if(used[i]==0) br++; 
     if( mi >= br ) mi = br ;  
     for(int i=1;i<=n;i++)
       if(t[i]) 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;
      }
    for(int i=1;i<=n;i++)
      for(int j=1;j<=n;j++) 
        if(a[i][j]) t[i]++;
    k=1;
    for(int i=1;i<=n;i++)
      if(k) { br=0;dfs(i);}
    if(!k) {
            for(int i=0;i<rear;i++)
                    printf("%d ",q[i]);
              printf("\n");
           }
    else printf("Sorry, Pesho %d\n",mi);
    return 0;
}
