#include <bits/stdc++.h>
using namespace std;
int N, M;
vector<int> G[30010];
vector<int> S;
bool V[30010];
void DF(int node) {
  V[node] = 1;
  for (vector<int>::iterator it = G[node].begin(); it != G[node].end(); ++it)
    if (!V[*it]) DF(*it);
  S.push_back(node);
}
int main() {
  cin >> N >> M;
  for (int i = 1; i <= M; i++) {
    int a, b;
    cin >> a >> b;
    G[a].push_back(b);
  }
  for (int i = 1; i <= N; i++)
    if (!V[i]) DF(i);
  for (int i = 0; i < N; i++) cout << S[i] << ' ';
  return 0;
}
