#include<stdio.h>
#define NR 50001
long n,i,j,k,m,p[NR],c[NR],t=0,v[NR],d[NR],f[NR],x,y,u[NR],a1[NR]={0},a2[NR]={0},l;
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,long u[NR],int m)
{long j;
d[u[i]]=(*t)++;
c[u[i]]=1;
for(k=1;k<=m;k++)
if(a1[k]==u[i])
{for(j=1;j<=n;j++)
if(a2[k]==u[j]&&c[u[j]]==0)
{p[u[j]]=u[i];
explorare(a1,a2,n,p,c,d,f,t,j,u,m);}}
c[u[i]]=2;
f[u[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",&u[i],&u[j]);
a1[k]=u[i];
a2[k]=u[j];}
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--;}}
for(i=1;i<=n;i++)
{v[u[i]]=i;
c[u[i]]=0;
p[u[i]]=0;}
for(i=1;i<=n;i++)
if(c[u[i]]==0)
explorare(a1,a2,n,p,c,d,f,&t,i,u,l);
for(i=1;i<n;i++)
{for(j=i+1;j<=n;j++)
if(f[u[i]]<f[u[j]])
{x=f[u[i]];
f[u[i]]=f[u[j]];
f[u[j]]=x;
y=v[u[i]];
v[u[i]]=v[u[j]];
v[u[j]]=y;}}
for(i=1;i<=n;i++)
printf("%ld ",v[u[i]]);
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;}