#include <fstream>
#include <vector>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
vector<int> t[100001];
int vf[100001],n,m,a,b,sol[100001],k;
void dfs(int nod)
{
vf[nod]=1;
for(int i=0;i<t[nod].size();i++)
{
int vecin = t[nod][i];
if(vf[vecin] == 0)
dfs(vecin);
}
sol[k--]=nod;
}
int main()
{
cin>>n>>m;
k=n;
for(int i=1;i<=m;i++)
{
cin>>a>>b;
t[a].push_back(b);
}
for(int i=1;i<=n;i++)
if(vf[i]==0) dfs(i);
for(int i = 1; i <= n; i++)
cout<<sol[i]<<" ";
return 0;
}