#include <bits/stdc++.h>
#define N_MAX (int)5e4 + 5
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int N, M, u, v;
vector<int> G[N_MAX];
int inDeg[N_MAX], Q[N_MAX], idx, currNode;
int main() {
fin >> N >> M;
for (int i = 0; i < M; i++) {
fin >> u >> v;
G[u].push_back(v);
inDeg[v]++;
}
idx = 1;
for (int i = 1; i <= N; i++) {
if (inDeg[i] == 0) {
Q[idx++] = i;
}
}
for (int i = 1; i <= N; i++) {
currNode = Q[i];
for (int node: G[currNode]) {
inDeg[node]--;
if (inDeg[node] == 0) {
Q[idx++] = node;
}
}
fout << currNode << " ";
}
return 0;
}