#include <bits/stdc++.h>
using namespace std;

const int MAX_M = 21;

int n, m;
vector<int> G[MAX_M];

void dfs(int idx, vector<int> path){
  for(int i = 0 ; i < (int)G[idx].size() ; i++){
    bool flag = true;
    for(int j = 0 ; j < (int)path.size() ; j++)
      if(path[j] == G[idx][i]) flag = false;
    
    if(flag){
      path.push_back(G[idx][i]);
      dfs(G[idx][i], path);
    }
  }
  
  if((int)path.size() == m){
    for(int i = 0 ; i < (int)path.size() ; i++){
      cout << path[i]+1 << endl;
    }
    throw 0;
  }

}

int main(){
  cin >> m >> n;
  
  int a, b;
  for(int i = 0 ; i < n ; i++){
    cin >> a >> b;
    a--, b--;
    G[b].push_back(a);
  }
  
  try{
    for(int i = 0 ; i < m ; i++){
      vector<int> path;
      path.push_back(i);
      dfs(i, path);
    }
  } catch(...){}
  
  return 0;
}