#include<fstream>
#include<vector>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
const int NMAX = 50000;
vector<int> v[NMAX+5];
int grad[NMAX+5],n,m,Q[NMAX+5];
void read()
{
in>>n>>m;
int x,y;
for( ; m ; --m){
in>>x>>y;
v[x].push_back(y);
grad[y]++;
}
in.close();
}
void solve()
{
for(int i = 1 ; i <= n ; i++)
if(grad[i] == 0)
Q[++Q[0]] = i;
int k;
for(int i = 1 ; i <= n ; i++)
{
k = Q[i];
for(int i = 0 ; i < v[k].size() ; i++){
grad[v[k][i]]--;
if(grad[v[k][i]] == 0)
Q[++Q[0]] = v[k][i];
}
}
}
void afis()
{
for(int i = 1 ; i <= n ; i++)
out<<Q[i]<<" ";
}
int main()
{
read();
solve();
afis();
return 0;
}