#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>

#define mp(x, y) make_pair(x, y)
#define X first
#define Y second

using namespace std;

typedef pair<int, int> pii;

int main ( void )
{
	int m;
	
	while (cin >> m)
	{
		vector<pii> v(m);
		
		for (int i = 0; i < m; ++i)
		{
			v[i].X = 0;
			v[i].Y = i+1;
		}
		
		int n;
		
		cin >> n;
		
		vector<pii> t(n);
		
		for (int i = 0; i < n; ++i)
		{
			cin >> t[i].X >> t[i].Y;
			--t[i].X;
			--t[i].Y;
		}
		
		bool hit = true;
		
		while (hit)
		{
			hit = false;
			
			for (int i = 0; i < n; ++i)
			{
				pii p = t[i];
				if (v[p.X].X < v[p.Y].X + 1)
				{
					v[p.X].X = v[p.Y].X + 1;
					hit = true;
				}
			}
		}
		
		sort(v.begin(), v.end(), greater<pii>());
		
		for (int i = 0; i < m; ++i)
		{
			cout << v.at(i).Y << endl;
		}
	}
	return 0;
}