#include <bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m;
bool viz[1<<16];
vector <int> v[1<<16];
stack <int> sol;
inline void DFS(int nod)
{ viz[nod]=1;
vector <int> :: iterator it;
for(it=v[nod].begin(); it!=v[nod].end(); it++)
if(!viz[*it])
DFS(*it);
sol.push(nod);
}
int main()
{ f>>n>>m;
for(int x,y; f>>x>>y; v[x].push_back(y));
for(int i=1; i<=n; i++)
if(!viz[i])
DFS(i);
for(; !sol.empty(); sol.pop())
g<<sol.top()<<' ';
g.close(); return 0;
}