/*
	Topological sort
	@author: md.moniruzzaman
*/
#include<stdio.h>
#include<list>
#define maxn 12 
using namespace std;

list<int>Link;

int link[maxn][maxn];
char F[maxn];
int N, E;

void DFS(int u) {
      int i;
	  F[u] = 1;
	  for(i = 1; i<= N; i++ ) {
		  if(link[u][i] == 0) continue;
		  if(F[i] == 1) continue;
		  DFS(i);
	  }
	  Link.push_front(u);
}

void main() {
	int u, v, i;
	scanf("%d%d",&N,&E);
	list<int>::iterator p;
	while(E--) {
		scanf("%d%d",&u,&v);
		link[u][v] = 1;
	}
	for( i = 1; i<= N; i++) {
		if(F[i] == 0)
			DFS(i);
	}
	for(p = Link.begin(); p != Link.end(); p++) {
		u = *p;
		printf("%d ",u);
	}
}