#include <bits/stdc++.h>
using namespace std;
const long double EPS = 1e-8;
const int INF = (int)(1e8);
const long long mod = (int)(1e+9 + 7);
const int N = (int)(3e4);
int days_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
vector<int> route;
vector<int> vec[N + 1];
bool vis[N + 1];
void dfs(int h) {
  vis[h] = true;
  for (int h2 : vec[h]) {
    if (vis[h2]) continue;
    dfs(h2);
  }
  route.push_back(h);
}
int main() {
  int n, m;
  cin >> n >> m;
  int a, b;
  for (int i = 0; i < m; i++) {
    scanf("%d%d", &a, &b);
    vec[b].push_back(a);
  }
  for (int v = (1); v <= (n); v++) {
    if (vis[v]) continue;
    dfs(v);
  }
  reverse(route.begin(), route.end());
  for (int x : route) printf("%d ", x);
  return 0;
}
