#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 1000
int a[max][max],v[max];
int res[max];

void topo(int n)
{
int i,j,p;
for(i=1;i<=n;i++)
{
p=-1;
for(j=1;j<=n;j++)
{
if(v[j]==0)
{
res[i]=p=j;
v[j]--;
break;
}
}
for(j=1;j<=n;j++)
{
if(a[p][j]==1)
{
a[p][j]=0;
v[j]--;
}
}
}
}
void sor(int n)
{
int i;
printf("%d",res[1]);
for(i=2;i<=n;i++)
printf(" %d",res[i]);
printf("\n");
}
int main()
{
int m,n,c,b,i;
while(scanf("%d %d",&n,&m)!=EOF)
{
memset(a,0,sizeof(a));
memset(v,0,sizeof(v));
memset(res,0,sizeof(res));
for(i=1;i<=m;i++)
{
scanf("%d %d",&c,&b);
a[c][b]=1;
v[b]++;
}
topo(n);
sor(n);

}
return 0;
}