#include<bits/stdc++.h>
using namespace std;
vector<int>graph[1001];
int visit[1001];
int n, e;
vector<int>ans;
void DFS(int start)
{
visit[start] = 1;
for(int j = 0; j < graph[start].size(); j++)
{
int node = graph[start][j];
if(visit[node] == 0)
{
visit[node] = 1;
DFS(node);
}
}
ans.push_back(start);
}
int main()
{
cin>>n>>e;
int u, v;
for(int i = 1; i <= e; i++)
{
cin>>u>>v;
graph[u].push_back(v);
}
for(int i = 1; i <= n; i++)
{
if(visit[i] == 0)
{
DFS(i);
}
}
for(int i = ans.size()-1; i >= 0; i--)
{
cout<<ans[i]<<" ";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD5ncmFwaFsxMDAxXTsKaW50IHZpc2l0WzEwMDFdOwppbnQgbiwgZTsKCnZlY3RvcjxpbnQ+YW5zOwoKdm9pZCBERlMoaW50IHN0YXJ0KQp7CiAgICB2aXNpdFtzdGFydF0gPSAxOwoKICAgIGZvcihpbnQgaiA9IDA7IGogPCBncmFwaFtzdGFydF0uc2l6ZSgpOyBqKyspCiAgICB7CiAgICAgICAgaW50IG5vZGUgPSBncmFwaFtzdGFydF1bal07CiAgICAgICAgaWYodmlzaXRbbm9kZV0gPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIHZpc2l0W25vZGVdID0gMTsKICAgICAgICAgICAgREZTKG5vZGUpOwogICAgICAgIH0KICAgIH0KICAgIGFucy5wdXNoX2JhY2soc3RhcnQpOwp9CgoKCmludCBtYWluKCkKewogICAgY2luPj5uPj5lOwogICAgaW50IHUsIHY7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IGU7IGkrKykKICAgIHsKICAgICAgICBjaW4+PnU+PnY7CiAgICAgICAgZ3JhcGhbdV0ucHVzaF9iYWNrKHYpOwogICAgfQoKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGlmKHZpc2l0W2ldID09IDApCiAgICAgICAgewogICAgICAgICAgICBERlMoaSk7CiAgICAgICAgfQogICAgfQoKCiAgICBmb3IoaW50IGkgPSBhbnMuc2l6ZSgpLTE7IGkgPj0gMDsgaS0tKQogICAgewogICAgICAgIGNvdXQ8PGFuc1tpXTw8IiAiOwogICAgfQp9Cg==