#include<bits/stdc++.h>
using namespace std;
int n,m;
void topsort(vector<int>*g, int *indegree,vector<int>&ans)
{
queue<int>q;
for(int i=1;i<=n;i++)
{
if(indegree[i]==0)
{
q.push(i);
}
}
while(!q.empty())
{
int cur=q.front();
q.pop();
ans.push_back(cur);
for(auto x: g[cur])
{
indegree[x]--;
if(indegree[x]==0) q.push(x);
}
}
for(auto x: ans)
{
cout<<x<< " ";
}
cout<<endl;
}
int main()
{
cin>>n>>m;
vector<int>g[n+1];
int indegree[n+1]={0};
for(int i=0;i<m;i++)
{
int u,v;
cin>>u>>v;
g[u].push_back(v);
indegree[v]++;
}
vector<int>ans;
topsort(g,indegree,ans);
// for(int i=1;i<=n;i++)
// {
// cout<<i<< " "<<indegree[i]<<endl;
// }
}
/*
7 12
1 4
1 5
1 7
4 5
3 5
2 5
5 6
6 7
3 4
2 3
2 6
5 7
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBuLG07CnZvaWQgdG9wc29ydCh2ZWN0b3I8aW50PipnLCBpbnQgKmluZGVncmVlLHZlY3RvcjxpbnQ+JmFucykKewoKICAgcXVldWU8aW50PnE7CiAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICB7CiAgICAgICBpZihpbmRlZ3JlZVtpXT09MCkKICAgICAgIHsKICAgICAgICAgICBxLnB1c2goaSk7CiAgICAgICB9CiAgIH0KICAgd2hpbGUoIXEuZW1wdHkoKSkKICAgewogICAgICAgaW50IGN1cj1xLmZyb250KCk7CiAgICAgICBxLnBvcCgpOwogICAgICAgYW5zLnB1c2hfYmFjayhjdXIpOwogICAgICAgZm9yKGF1dG8geDogZ1tjdXJdKQogICAgICAgewogICAgICAgICAgIGluZGVncmVlW3hdLS07CiAgICAgICAgICAgaWYoaW5kZWdyZWVbeF09PTApIHEucHVzaCh4KTsKICAgICAgIH0KICAgfQogICBmb3IoYXV0byB4OiBhbnMpCiAgICB7CiAgICAgICAgY291dDw8eDw8ICIgIjsKICAgIH0KICAgIGNvdXQ8PGVuZGw7Cgp9CgppbnQgbWFpbigpCnsKCiAgICBjaW4+Pm4+Pm07CgogICAgdmVjdG9yPGludD5nW24rMV07CiAgICBpbnQgaW5kZWdyZWVbbisxXT17MH07CiAgICBmb3IoaW50IGk9MDtpPG07aSsrKQogICAgewogICAgICAgIGludCB1LHY7CiAgICAgICAgY2luPj51Pj52OwogICAgICAgIGdbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGluZGVncmVlW3ZdKys7CiAgICB9CiAgICB2ZWN0b3I8aW50PmFuczsKICAgIHRvcHNvcnQoZyxpbmRlZ3JlZSxhbnMpOwoKLy8gICAgZm9yKGludCBpPTE7aTw9bjtpKyspCi8vICAgIHsKLy8gICAgICAgIGNvdXQ8PGk8PCAiICI8PGluZGVncmVlW2ldPDxlbmRsOwovLyAgICB9Cn0KLyoKNyAxMgoxIDQKMSA1CjEgNwo0IDUKMyA1CjIgNQo1IDYKNiA3CjMgNAoyIDMKMiA2CjUgNwoqLwo=