#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int NOD_MAX=50001;
vector <int> viz(NOD_MAX), ord;
vector <vector<int>> graf(NOD_MAX);
int n, m;
void dfs(int start){
viz[start]=1;
for(int i : graf[start]){
if(!viz[i]){
dfs(i);
}
}
ord.push_back(start);
}
int main(){
cin >> n >> m;
for(int i=1; i<=m; i++){
int a, b;
cin >> a >> b;
graf[a].push_back(b);
}
for(int i=1; i<=n; i++){
if(!viz[i]){
dfs(i);
}
}
reverse(ord.begin(), ord.end());
for(int i : ord){
cout << i << " ";
}
return 0;
}