#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct po{
  int num,site;
};

int m,n;
po a[102];
vector <int> rel[101];


void check(int e) {
  for(int i=1;i<=e;i++) {
    
    for(int j=0;j<rel[i].size();j++) {  
      int low = rel[i][j];
      if(a[i].site > a[low].site) {
	int t = a[i].site;
	a[i].site = a[low].site;
	a[low].site = t;
	check(i);
      }
    }
  }
      
}

int main() {

  cin >> n;
  cin >> m;
  for(int i=0;i<101;i++) a[i].num = a[i].site = i;

  for(int i=0;i<m;i++) {
    int x,y;
    cin >> x >> y;
    rel[x].push_back(y);
  }

  int emp;
  for(int i=1;i<=n;i++)
    if(rel[i].size() == 0) 
      emp = i;
      
  for(int i=1;i<=n;i++){
    rel[i].push_back(emp);
    sort(rel[i].begin(),rel[i].end());
  }  
  

  /*for(int i=1;i<=n;i++){
    cout << i <<" > ";
    for(int j=0;j<rel[i].size();j++)
      cout << rel[i][j] <<" ";
    cout << endl;
    } */

  check(n);

  //for(int i=1;i<=n;i++)cout <<"num="<< a[i].num <<" site="<<a[i].site << endl;
    
  
  for(int i=1;i<n;i++)
    for(int j=n;j>i;j--)
      if(a[j].site < a[j-1].site)
	swap(a[j],a[j-1]);
  
  for(int i=1;i<=n;i++) cout << a[i].num << endl;
  
    return 0;
  }