#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
int n, m;
vector<int> G[30010];
bool vis[30010];
void dfs(int u) {
  if (vis[u]) return;
  vis[u] = true;
  int sz = G[u].size();
  for (int i = 0; i < sz; i++) dfs(G[u][i]);
  printf("%d ", u);
  return;
}
int main() {
  while (~scanf("%d%d", &n, &m)) {
    int x, y;
    memset(vis, 0, sizeof(vis));
    for (int i = 1; i <= n; i++) G[i].clear();
    for (int i = 0; i < m; i++) {
      scanf("%d%d", &x, &y);
      G[x].push_back(y);
    }
    for (int i = 1; i <= n; i++) dfs(i);
    puts("");
  }
  return 0;
}
