#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
const int N = 500+5;
int main()
{
int n, m;
while(cin >> n >> m && n && m){
vector<int> v[N];
int indgree[N]={0}, topo[N]={0};
while(m--){
int a, b;
cin >> a >> b;
v[a].push_back(b);
indgree[b]++;
}
int cnt = 0;
for(int i=0; i<n; i++){
for(int j=1; j<=n; j++){
if(indgree[j] == 0){
topo[cnt++] = j;
indgree[j] = -1;
//将与该点相连的点入度减一
for(int k=0; k<v[j].size(); k++){
indgree[v[j][k]]--;
}
break;
}
}
}
if(cnt == n){
for(int i=0; i<cnt-1; i++){
cout << topo[i] << " ";
}
cout << topo[cnt-1] << endl;
}
}
return 0;
}