/*
TASK:platka
LANG:C++ 
*/
#include <stdlib.h>
#include <iostream.h>
using namespace std;
long n,m,i,j,jj;
int g[1500][1500]={0};
int neo [1500]={0};
int minat[1500]={0};
int minato[1500]={0};
void makestep(long a,long b,int z)
{
 minato[a]=1;
 minato[b]=1;
 minat[z]=a;
 minat[z+1]=b;
 for (i=1;i<=n;i++)  if (minato[i]==0) break;
 if(i==n+1&&minato[n]!=0) {for(int k=1;k<=n;k++) cout<<minat[k]<<" "; cout<<endl; return;}
 for(j=1;j<=n;j++)  if(g[b][j]!=0) {g[b][j]=0; g[j][b]=0; makestep(b,j,z+1);}
}
int main()
{
    cin>>n>>m;
    for(i=1;i<m+1;i++) {cin>>j>>jj; g[j][jj]=1; g[jj][j];}
    for (i=1;i<n+1;i++)  for(j=1;j<=n;j++)  if(g[i][j]!=0) {g[i][j]=0; g[j][i]=0; makestep(i,j,1);}
    return 0;
}
