#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]<<" ";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD5ncmFwaFsxMDAxXTsKaW50IHZpc2l0WzEwMDFdOwppbnQgbiwgZTsKdmVjdG9yPGludD5hbnM7CgoKdm9pZCBkZnMoaW50IHN0YXJ0KQp7CiAgICB2aXNpdFtzdGFydF0gPSAxOwoKICAgIGZvcihpbnQgaiA9IDA7IGogPCBncmFwaFtzdGFydF0uc2l6ZSgpOyBqKyspCiAgICB7CiAgICAgICAgaW50IG5vZGUgPSBncmFwaFtzdGFydF1bal07CiAgICAgICAgaWYodmlzaXRbbm9kZV0gPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIHZpc2l0W25vZGVdID0gMTsKICAgICAgICAgICAgZGZzKG5vZGUpOwogICAgICAgIH0KICAgIH0KICAgIGFucy5wdXNoX2JhY2soc3RhcnQpOwp9CgppbnQgbWFpbigpCnsKICAgIGNpbj4+bj4+ZTsKICAgIGludCB1LCB2OwogICAgZm9yKGludCBpID0gMTsgaSA8PSBlOyBpKyspCiAgICB7CiAgICAgICAgY2luPj51Pj52OwogICAgICAgIGdyYXBoW3VdLnB1c2hfYmFjayh2KTsKICAgIH0KCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgIHsKICAgICAgICBpZih2aXNpdFtpXSA9PSAwKQogICAgICAgIHsKICAgICAgICAgICAgZGZzKGkpOwogICAgICAgIH0KICAgIH0KCiAgICBmb3IoaW50IGkgPSBhbnMuc2l6ZSgpLTE7IGkgPj0gMDsgaS0tKQogICAgewogICAgICAgIGNvdXQ8PGFuc1tpXTw8IiAiOwogICAgfQoKCn0K