#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;   }   