#include<bits/stdc++.h>
using namespace std;
int n, m;
int mp[505][505];
int ind[505];
void topo()
{
//用优先队列 要求输出编号小的队伍在前
priority_queue<int,vector<int>,greater<int> >Q;
//入度为0的点
for(int i = 1; i <= n; i++) //所有的点
if(ind[i] == 0)
Q.push(i);
int first = 1;
while(!Q.empty()) {
int num = Q.top();
Q.pop();
ind[num] = -1;
if(first) cout << num;
else cout << " " << num;
first = 0;
for(int i = 1; i <= n; i++) {
if(mp[num][i] == 1) {
ind[i] -= 1;
if(ind[i] == 0)
Q.push(i);
}
}
}
cout << endl;
}
int main()
{
while(cin >> n >> m) {
memset(mp,0,sizeof(mp));
memset(ind,0,sizeof(ind));
for(int i = 0; i < m; i++) {
int a, b;
scanf("%d%d",&a,&b);
if(mp[a][b] == 0) {
mp[a][b] = 1;
ind[b]++;
}
}
topo();
}
return 0;
}