#include <bits/stdc++.h>
using namespace std;
vector<int> adj[100005];
vector<int> ans;
int vs[100005];
void dfs(int u) {
  vs[u] = 1;
  for (int a = (int)0, _b = (int)adj[u].size() - 1; a <= _b; a++) {
    int v = adj[u][a];
    if (!vs[v]) dfs(v);
  }
  ans.push_back(u);
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int a = (int)1, _b = (int)m; a <= _b; a++) {
    int u, v;
    scanf("%d%d", &u, &v);
    adj[v].push_back(u);
  }
  for (int a = (int)1, _b = (int)n; a <= _b; a++) {
    if (!vs[a]) dfs(a);
  }
  for (int a = (int)ans.size() - 1, _b = (int)0; a >= _b; a--) {
    printf("%d ", ans[a]);
  }
  return 0;
}
