/*
TASK:platka
LANG:C++
*/
#include <iostream>
#include <algorithm>
using namespace std;
int n,m,a[1500][20000],br=0,brmax=0,used[20000],bru=0,nov[20000];
void show()
     {
     int i;
     for(i=1;i<=bru;i++)
                       printf("%d ",used[i]);
     printf("\n");
     exit(0);
     }
void cnt(int g)
     {
      br=0;
      int i,j;
      for(i=1;i<=g;i++)nov[i]=used[i];
      sort(nov,nov+g+1);
      for(i=1;i<=g;i++)if(nov[i]!=nov[i+1])br++;
      }
void dfs(int p)
     {
      bru++;
      used[bru]=p;
      cnt(bru);
      if(bru==m+1&&br==n)show();
      int i,j;
      for(i=1;i<=n;i++)
                      if(a[p][i]>0){a[p][i]--;a[i][p]--;dfs(i);}
      cnt(bru);
      if(br>brmax)brmax=br;
      bru--;
      a[p][used[bru]]++;
      a[used[bru]][p]++;
      return;
      }
int main()
{
int i,j,x,y;
scanf("%d%d",&n,&m);
for(i=0;i<m;i++)
                {
                 scanf("%d%d",&x,&y);
                 a[x][y]=1;
                 a[y][x]=1;
                 }
/*for(i=0;i<=n;i++)
         {for(j=0;j<=n;j++)
                 printf("%d ",a[i][j]);
         printf("\n");
         }       */
for(i=1;i<=n;i++)
                {bru=0;dfs(i);}
printf("Sorry, Pesho %d\n",n-brmax);
}
