#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <queue>

using namespace std;

struct Info{
	int id,num;
};

struct ORDER{
	int fast,slow;
};

int main(){

	int m,n;

	scanf("%d",&m);
	Info member[m];
	int checkTable[m];

	for(int i=0; i < m; i++){
		member[i].id = i+1;
		member[i].num = 10000;
		checkTable[i] = 0;
	}


	scanf("%d",&n);
	ORDER orders[n];

	for(int i=0; i < n; i++){
		scanf("%d %d",&orders[i].fast,&orders[i].slow);
		checkTable[orders[i].fast] = 1;
	}

	for(int i=0; i < m; i++){
		if(checkTable[i] == 0){
			member[i].num = 100000000;
		}
	}

	for(int i=1; i <= n-1; i++){
		for(int k=n-1; k >= i; k--){
			if(orders[k].slow < orders[k-1].slow)swap(orders[k],orders[k-1]);	//????????¨?????????????????£?¶??????????
		}
	}

	for(int i=0; i < n; i++){
		member[orders[i].fast-1].num = member[orders[i].slow-1].num-1;
	}

	for(int i=1; i <=m-1; i++){
		for(int k=m-1; k>=i; k--){
			if(member[k].num < member[k-1].num)swap(member[k],member[k-1]);
		}
	}

	for(int i=0; i < m; i++){
		printf("%d\n",member[i].id);
	}

    return 0;
}