#include<iostream>
#include<stack>
using namespace std;
typedef struct student{
int parent;
}student;
student arr[32002];
stack<int> s;
int visit[32002];
int max(int a, int b){
return a>b?a:b;
}
void find(int x){
visit[x] = 1;
int a = arr[x].parent;
if(!visit[a])
find(a);
s.push(x);
}
int main(){
int n,m;
int maxnum=0;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++){
arr[i].parent = i;
}
int a, b;
for(int i=0;i<m;i++){
scanf("%d %d",&a,&b);
arr[a].parent = b;
}
for(int i=1;i<=n;i++){
if(!visit[i])
find(i);
}
while(s.size()){
printf("%d",s.top());
s.pop();
if(!s.empty())
printf(" ");
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0YWNrPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgc3RydWN0IHN0dWRlbnR7CglpbnQgcGFyZW50Owp9c3R1ZGVudDsKCnN0dWRlbnQgYXJyWzMyMDAyXTsKc3RhY2s8aW50PiBzOwppbnQgdmlzaXRbMzIwMDJdOwoKaW50IG1heChpbnQgYSwgaW50IGIpewoJcmV0dXJuIGE+Yj9hOmI7Cn0KCnZvaWQgZmluZChpbnQgeCl7Cgl2aXNpdFt4XSA9IDE7CglpbnQgYSA9IGFyclt4XS5wYXJlbnQ7CglpZighdmlzaXRbYV0pCgkJZmluZChhKTsKCXMucHVzaCh4KTsKCQp9CgppbnQgbWFpbigpewoJaW50IG4sbTsKCWludCBtYXhudW09MDsKCXNjYW5mKCIlZCAlZCIsJm4sJm0pOwoJCgkKCWZvcihpbnQgaT0xO2k8PW47aSsrKXsKCQlhcnJbaV0ucGFyZW50ID0gaTsKCX0KCQoJaW50IGEsIGI7Cglmb3IoaW50IGk9MDtpPG07aSsrKXsKCQlzY2FuZigiJWQgJWQiLCZhLCZiKTsKCQlhcnJbYV0ucGFyZW50ID0gYjsKCX0KCWZvcihpbnQgaT0xO2k8PW47aSsrKXsKCQlpZighdmlzaXRbaV0pCgkJCWZpbmQoaSk7CgkJCgl9CgkKCQoJd2hpbGUocy5zaXplKCkpewoJCXByaW50ZigiJWQiLHMudG9wKCkpOwoJCXMucG9wKCk7CgkJaWYoIXMuZW1wdHkoKSkKCQkJcHJpbnRmKCIgIik7Cgl9CgkKCQp9