/*
TASK:platka
LANG:C++
*/
#include <iostream>
#include <queue>
using namespace std;

int A[2500][2500];
int N,M;
int re;
int path[2500];
int p;
//priority_queue <int> R;

int printpath()
{
	cout<<1;
	for(int j=0; j<p-1; j++)
	{
		cout<<" "<<path[j]+1;
	}
	return 0;
}

int dfs(int i)
{
	if(re==0)
	{
		printpath();
		exit(0);
	}
	int cmax=0;
	int cnum=0;
	//while(R.top()!=0){R.pop();}
	for(int k=0; k<N; k++)
	{
		if(!A[i][k]) continue;
		int r=0;
		for(int l=0; l<N; l++)
		{
			if(k==l) continue;
			if(A[k][l]) r++;
		}
		if(cmax<r)
		{
			cmax=r;cnum=k;
		}
	}
	A[i][cnum]=0;
	A[cnum][i]=0;
	re--;
	path[p++]=cnum;
	dfs(cnum);
	p--;
	re++;
	A[i][cnum]=1;
	A[cnum][i]=1;
	return 0;
}

int main()
{
	cin>>N>>M;
	for(int i=0; i<M; i++)
	{
		int y,u;
		cin>>y>>u;
		y--; u--;
		A[y][u]=1;
		A[u][y]=1;
		re++;
	}
	dfs(0);
	cout<<"Sorry, Pesho "<<rand()%N;
	return 0;
}