#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
const int INF = 0x3f3f3f3f;
const double pi = acos(-1.0);
const double eps = 1e-9;
template <class T>
inline void read(T &x) {
  int c;
  for (c = getchar(); c < 32 && ~c; c = getchar())
    ;
  for (x = 0; c > 32; x = x * 10 + c - '0', c = getchar())
    ;
}
int n, m;
int chu[maxn];
vector<int> g[maxn];
priority_queue<int> q;
int ind;
int lab[maxn];
int main() {
  read(n), read(m);
  int u, v;
  for (int i = 0; i < m; i++) {
    read(v), read(u);
    g[u].emplace_back(v);
    chu[v]++;
  }
  ind = n;
  for (int i = 1; i <= n; i++) {
    if (chu[i] == 0) {
      q.emplace(i);
    }
  }
  while (!q.empty()) {
    int x = q.top();
    q.pop();
    lab[x] = ind--;
    for (auto &i : g[x]) {
      chu[i]--;
      if (chu[i] == 0) q.emplace(i);
    }
  }
  for (int i = 1; i <= n; i++) {
    cout << lab[i] << ' ';
  }
  return 0;
}
