#include <fstream>
#include <vector>
#define NMAX 50010
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, di[NMAX], ic, sc, C[NMAX];
vector<int> A[NMAX];
bool viz[NMAX];
int main()
{
int i, k, a, b;
fin >> n >> m;
for (i = 1; i <= m; i++)
{
fin >> a >> b;
di[b]++;
A[a].push_back(b);
}
sc = -1;
for (i = 1; i <= n; i++)
{
if (!di[i])
C[++sc] = i;
}
while (ic <= sc)
{
i = C[ic++];
fout << i << ' ';
for (k = 0; k < A[i].size(); k++)
{
di[A[i][k]]--;
if (!di[A[i][k]] && !viz[A[i][k]])
C[++sc] = A[i][k];
}
}
fout << '\n';
fout.close();
return 0;
}