#include <iostream>
#include <vector>
#include <map>
#include <queue>
#include <fstream>
#include <utility>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
pair<vector<int>, vector<int>> nodes[(int)5e4 + 1];
vector<bool> visited((int)5e4 + 1, false);
void display(int node) {
visited[node] = true;
for (int i = 0; i < nodes[node].first.size(); ++i) {
if (visited[nodes[node].first[i]] == false) {
display(nodes[node].first[i]);
}
}
fout << node << ' ';
}
int main() {
int n, m;
fin >> n >> m;
for (int i = 1, x, y; i <= m; ++i) {
fin >> x >> y;// x -> y, x este tatal lui y iar y este fiul lui x
nodes[y].first.push_back(x); // tatal lui y
nodes[x].second.push_back(y); //copilul lui x
}
for (int i = 1; i <= n; ++i) {
if (nodes[i].second.size() == 0) {
display(i);
}
}
}