#include<stdio.h>
#define NR 500000
long n,i,j,k,m,p[NR],c[NR],t=0,v[NR],d[NR],f[NR],x,y,u,w,a1[NR]={0},a2[NR]={0},l,r;
void explorare(long a1[NR],long a2[NR],long n,long p[NR],long c[NR],long d[NR],long f[NR],long *t,long i,int m)
{long j;
d[i]=(*t)++;
c[i]=1;
for(k=1;k<=m;k++)
if(a1[k]==i)
{for(j=1;j<=n;j++)
if(a2[k]==v[j]&&c[v[j]]==0)
{p[v[j]]=i;
explorare(a1,a2,n,p,c,d,f,t,v[j],m);}}
c[i]=2;
f[i]=(*t)++;}
int main()
{freopen("sortaret.in","rt",stdin);
freopen("sortaret.out","wt",stdout);
scanf("%ld %ld",&n,&m);
for(k=1;k<=m;k++)
scanf("%ld %ld",&a1[k],&a2[k]);
l=m;
for(i=1;i<l;i++)
{for(j=i+1;j<=l;j++)
if(a1[i]==a1[j]&&a2[i]==a2[j])
{for(k=j;k<l;k++)
{a1[k]=a1[k+1];
a2[k]=a2[k+1];}
l--;}}
k=1;
if(a1[1]!=a2[1])
{v[k++]=a1[1];
v[k++]=a2[1];}
else
v[k++]=a1[1];
for(i=2;i<=l;i++)
{w=0;
u=0;
for(j=1;j<k;j++)
if(a1[i]!=v[j])
w++;
if(w==k-1)
v[k++]=a1[i];
for(r=1;r<k;r++)
if(a2[i]!=v[r])
u++;
if(u==k-1)
v[k++]=a2[i];}
for(i=1;i<k;i++)
{c[v[i]]=0;
p[v[i]]=0;}
for(i=1;i<=l;i++)
if(c[v[i]]==0)
explorare(a1,a2,k,p,c,d,f,&t,v[i],l);
for(i=1;i<k-1;i++)
{for(j=i+1;j<k;j++)
if(f[v[i]]<f[v[j]])
{x=f[v[i]];
f[v[i]]=f[v[j]];
f[v[j]]=x;
y=v[i];
v[i]=v[j];
v[j]=y;}}
for(i=1;i<k;i++)
printf("%ld ",v[i]);
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;}