#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<vector<int>> vec;
vector<int>solutie;
vector<int> viz(1e6,0);
void dfs(int i) {
viz[i]=1;
solutie.push_back(i);
for (auto j : vec[i]) {
if (viz[j]==0) {
dfs(j);
}
}
}
int main() {
int n, m;
cin>>n>>m;
vec.resize(n+1);
for (int i=1;i<=m;i++) {
int a, b;
cin>>a>>b;
vec[a].push_back(b);
}
for (int i=1;i<=n;i++) {
if (viz[i]==0) dfs(i);
}
for (auto i : solutie) cout<<i<<" ";
return 0;
}