#include <bits/stdc++.h>
using namespace std;
vector<int> G[100010];
struct P {
  int x;
  bool operator<(const P &hs) const { return x > hs.x; }
};
priority_queue<int> Q;
int d[100010], ans[100010];
int main() {
  int n, m;
  scanf("%d %d", &n, &m);
  memset(d, 0, sizeof(d));
  for (int i = 0; i < m; i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    G[y].push_back(x);
    d[x]++;
  }
  for (int i = 1; i <= n; i++)
    if (d[i] == 0) {
      Q.push(i);
    }
  int cn = n;
  while (!Q.empty()) {
    int x = Q.top();
    Q.pop();
    ans[x] = cn--;
    for (int i = 0; i < G[x].size(); i++) {
      int v = G[x][i];
      d[v]--;
      if (d[v] == 0) Q.push(v);
    }
  }
  for (int i = 1; i <= n; i++) printf("%d%c", ans[i], i == n ? '\n' : ' ');
  return 0;
}
