#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
int n, m, a, b, ile = 1;
vector<pair<int, int> > post_number;
struct graf {
  vector<int> sasiedzi;
  int post;
  bool visited;
  graf() { visited = false; }
};
graf G[MAXN];
void input() {
  cin >> n >> m;
  while (m--) {
    cin >> a >> b;
    G[a].sasiedzi.push_back(b);
  }
}
void post_order(int v) {
  G[v].visited = true;
  for (int u : G[v].sasiedzi)
    if (!G[u].visited) post_order(u);
  G[v].post = ile++;
}
void solve() {
  for (int i = 1; i <= n; i++)
    if (!G[i].visited) post_order(i);
  for (int i = 1; i <= n; i++) post_number.push_back(make_pair(G[i].post, i));
  sort(post_number.begin(), post_number.end());
  for (pair<int, int> P : post_number) cout << P.second << " ";
  cout << "\n";
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  input();
  solve();
  return 0;
}
