#include <bits/stdc++.h>
using namespace std;
int n, m;
struct node {
  int d, number;
  friend bool operator<(struct node a, struct node b) {
    return a.number < b.number;
  }
} v[100005];
vector<int> e[100005];
int label[100005];
priority_queue<struct node> q;
int main() {
  scanf("%d %d", &n, &m);
  for (int i = 1; i <= n; i++) {
    v[i].number = i;
  }
  for (int i = 0; i < m; i++) {
    int sta, en;
    scanf("%d%d", &sta, &en);
    v[sta].d++;
    e[en].push_back(sta);
  }
  for (int i = 1; i <= n; i++) {
    if (v[i].d == 0) {
      q.push(v[i]);
    }
  }
  int cnt = n;
  while (!q.empty()) {
    struct node temp = q.top();
    q.pop();
    label[temp.number] = cnt--;
    for (int i = 0; i < e[temp.number].size(); i++) {
      int x = e[temp.number][i];
      if (v[x].d) {
        v[x].d--;
        if (v[x].d == 0) q.push(v[x]);
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    cout << label[i] << " ";
  }
  return 0;
}
