#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define MAX 50100
using namespace std;
int n,m;
vector<int> a[MAX];
int grad[MAX],Q[MAX];
void citire()
{
ifstream f("sortaret.in");
f>>n>>m;
int x,y;
for(int i=0;i<m;i++){
f>>x>>y;
a[x].push_back(y);
grad[y]++;
}
}
int main()
{
int i;
citire();
for(i=1;i<=n;i++)
if(!grad[i])
Q[++Q[0]]=i;
int curent;
for(i=1;i<=n;i++){
curent=Q[i];
for(vector<int>::iterator it=a[curent].begin();it!=a[curent].end();++it){
grad[*it]--;
if(!grad[*it])
Q[++Q[0]]=*it;
}
}
ofstream g("sortaret.out");
for(i=1;i<=n;i++)
g<<Q[i]<<" ";
}