#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m;
vector<int>v[50005],d[100005];
int id[100005];
vector<int>rez;
queue<int>q;
int main()
{
fin>>n>>m;
for(int i=1; i<=m; i++)
{
int x,y;
fin>>x>>y;
v[x].push_back(y);
d[y].push_back(x);
id[y]++;
}
for(int i=1; i<=n; i++)
{
if(id[i]==0)
{
q.push(i);
}
}
while(!q.empty())
{
int i=q.front();
q.pop();
rez.push_back(i);
//fout<<i<<endl;
for(auto j:v[i])
{
//fout<<j<<" "<<id[j]<<endl;
id[j]--;
if(id[j]==0)
q.push(j);
}
//fout<<endl;
}
for(int i=0; i<rez.size(); i++)
fout<<rez[i]<<" ";
}