#include <iostream>
#include <fstream>
#include <stack>
#include <queue>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> v[50001];
stack <int> s;
int a[50001];
void dfs(int nod)
{
a[nod]=1;
for (auto it : v[nod])
{
if (a[it]==0)
{
dfs(it);
}
}
s.push(nod);
}
int main()
{
int i,n,m,x,y;
fin>>n >>m;
for (i=1;i<=m;i++)
{
fin>>x >>y;
v[x].push_back(y);
}
for (i=1;i<=n;i++)
{
if (!a[i])
{
dfs(i);
}
}
while(!s.empty())
{
fout<<s.top()<<" ";
s.pop();
}
}