#include <queue>
#define REP(i,n) for(int i=0; i<(int)(n); i++)

#include <set>
#include <cstdio>
inline int getInt(){ int s; scanf("%d", &s); return s; }

using namespace std;

int main(){
  const int n = getInt();
  const int m = getInt();

  vector<vector<int> > g(n);
  vector<int> in(n);

  REP(i,m){
    const int a = getInt() - 1;
    const int b = getInt() - 1;

    in[b]++;
    g[a].push_back(b);
  }

  queue<int> q;
  REP(i,n){
    if(in[i] == 0)
      q.push(i);
  }

  while(q.size()){
    const int a = q.front();
    q.pop();

    printf("%d\n", a + 1);

    REP(i,g[a].size()){
      const int b = g[a][i];
      if(--in[b] == 0)
        q.push(b);
    }
  }

  return 0;
}