#include <iostream>
#include <vector>
using namespace std;

int n,m;
std::vector<int> edge[21];
std::vector<int> prev[21];
int color[21];
void topological(int x){
	if(color[x])return;
	color[x]=1;
	for(int i=0;i<prev[x].size();i++){
		topological(prev[x][i]);
	}
	cout<<x<<endl;
	for(int i=0;i<edge[x].size();i++){
		topological(edge[x][i]);
	}
}
int main(void){
	int a,b;
	cin>>m>>n;
	for(int i=0;i<=m;i++)color[i]=0;
	while(n--){
		cin>>a>>b;
		edge[a].push_back(b);
		prev[b].push_back(a);
	}
	// // for(int i=1;i<=m;i++){
	// // 	cout<<"next:"<<i<<endl;
	// // 	for(int j=0;j<edge[i].size();j++){
	// // 		cout<<"\t"<<edge[i][j]<<endl;
	// // 	}
	// // 	cout<<"prev:"<<i<<endl;
	// // 	for(int j=0;j<prev[i].size();j++){
	// // 		cout<<"\t"<<prev[i][j]<<endl;
	// // 	}
	// }
	for(int i=1;i<=m;i++){
		if(edge[i].size()==0){
			topological(i);
			break;
		}
	}
	return 0;
}