#include <bits/stdc++.h>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout("sortaret.out");
const int dim = 50002;
vector<int> a[dim], ordine;
queue<int> coada;
int n, grad[dim];
void sortare()
{
for (int i = 1; i <= n; i++)
if (grad[i] == 0)
coada.push(i);
while (!coada.empty())
{
int x = coada.front();
ordine.push_back(x);
coada.pop();
///parcurg lista de vecini a lui x
for (int y : a[x])
{
grad[y]--;
if (grad[y] == 0)
coada.push(y);
}
}
}
int main()
{
int m, x, y;
fin >> n >> m;
for (int i = 1; i <= m; i++)
{
fin >> x >> y; ///muchia orientata x->y
a[x].push_back(y);
grad[y]++;
}
sortare();
for (int x : ordine)
fout << x << ' ';
}