#include <bits/stdc++.h>
using namespace std;
const long long int mod = 1000000007;
const long long int big = 2999999999999999999;
const long long int small = -2999999999999999999;
long long int n, m;
vector<long long int> visited(3001, 0), ans;
unordered_set<long long int> graph[30002];
void in2(long long int& a, long long int& b) {
  scanf("%lld", &a);
  ;
  scanf("%lld", &b);
  ;
}
void in3(long long int& a, long long int& b, long long int& c) {
  scanf("%lld", &a);
  ;
  scanf("%lld", &b);
  ;
  scanf("%lld", &c);
  ;
}
int main() {
  in2(n, m);
  long long int x, y;
  long long int s = -1;
  for (long long int i = 1; i <= m; i++) {
    in2(x, y);
    graph[x].insert(y);
  }
  ans.resize(n);
  for (long long int i = 0; i < n; i++) ans[i] = i + 1;
  for (long long int i = 1; i < n; i++) {
    long long int temp = ans[i];
    for (long long int j = i; j > 0; j--) {
      if (graph[ans[j - 1]].find(temp) == graph[ans[j - 1]].end()) break;
      ans[j] = ans[j - 1];
      ans[j - 1] = temp;
    }
  }
  for (long long int aa : ans) cout << aa << " ";
}
