#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
#include <list>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,grint[100005],ok;
const int M=100005;
list<int>vecini[100005];
bitset<M> v;
void sort_top()
{
ok=1;
while(ok==1)
{
ok=0;
for(int i=1; i<=n; i++)
{
if(grint[i]==0 && v[i]==0)
{
ok=1;
v[i]=1;
for(auto node : vecini[i])
{
grint[node]--;
}
fout<<i<<" ";
}
}
}
}
int main()
{
fin>>n>>m;
for(int i=1; i<=m; i++)
{
int x,y;
fin>>x>>y;
vecini[x].push_back(y);
grint[y]++;
}
sort_top();
return 0;
}