#include <bits/stdc++.h>
using namespace std;
const int MAXINT = 0x6fffffff;
const long long MAXLONG = (long long)1 << 60;
const int MAXN = 1e5;
vector<int> gra[MAXN];
int n, m;
int vis[MAXN];
void dfs(int nid) {
  vis[nid] = 1;
  int sz = gra[nid].size();
  for (long long i = (0); i < (sz); i += 1) {
    int nei = gra[nid][i];
    if (vis[nei]) continue;
    dfs(nei);
  }
  printf("%d ", nid);
}
int main() {
  while (scanf("%d %d", &n, &m) != -1) {
    for (long long i = (1); i < (n + 1); i += 1) {
      gra[i].clear();
    }
    for (long long i = (0); i < (m); i += 1) {
      int a, b;
      scanf("%d %d", &a, &b);
      gra[a].push_back(b);
    }
    memset(vis, 0, sizeof(vis));
    for (long long i = (1); i < (n + 1); i += 1) {
      if (vis[i]) continue;
      dfs(i);
    }
    puts("");
  }
  return 0;
}
