
import std.stdio;

int[][int] graph;
bool[int] used;

void dependent(int n) {
  if (!used[n]) {
    foreach(i; graph[n]) {
      dependent(i);
    }
    writeln(n);
    used[n] = true;
  }
}

void main() {
  int m, n;
  scanf("%d\n%d\n", &m, &n);
  foreach(i; 1..(m + 1)) {graph[i] = []; used[i] = false;}
  foreach(i; 0..n) {
    int to, from;
    scanf("%d %d", &from, &to);
    graph[to] ~= from;
  }
  foreach(i; 1..m) dependent(i);
}