#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<cctype>
#include<complex>
#include<iostream>
#include<algorithm>
#include<functional>
#include<vector>
#include<string>
#include<stack>
#include<queue>
#include<map>

using namespace std;
const int dx[] = {1,0,-1,0},dy[] = {0,1,0,-1};
#define INF 999999
#define rep(i,j) for(int i=0;i<(j);++i)
#define reps(i,j,k) for(int i=j;i<k;++i)
typedef long long ll;
typedef unsigned long long ull;

int main(){
	int n,m;
	scanf("%d%d",&n,&m);
	vector< vector<int> > vvi(n+1);
	int ch[32]={0};
	rep(i,m){
		int x,y;
		scanf("%d%d",&x,&y);
		ch[y]++;
		vvi[x].push_back(y);
	}

	queue<int> Q;
	reps(i,1,n+1){
		if(ch[i] == 0)Q.push(i);
	}
	while(!Q.empty()){
		cout << Q.front() << endl;
		rep(i,vvi[Q.front()].size()){
			int x;
			x = vvi[Q.front()][i];
			if(--ch[x] == 0)Q.push(x);
		}
		Q.pop();
	}
	return 0;
}