#include <fstream>
#include <vector>
using namespace std;
istream fin ("sortaret.in");
ostream fout ("sortaret.out");
void DFS(vector<vector<int>>& graph,vector<bool>& visit, vector<int>& rezult,int s){
visit[s]=true;
rezult.push_back(s);
for (i=0;i<graph[s].size();i++)
{
if(visit[s][i]==false)
DFS(adj,visit,rezult,s+1)
}
}
int main ()
{
int v1,v2,n,m;
fin>>n>>m;
vector<vector<int>> graph(n+1);
vector<bool> visit(n+1,false);
vector<int> rezult;
for (i=0;i<m;i++)
{
fin>>v1>>v2;
graph[v1].push_back(v2);
}
DFS(graph, visit, rezult, 0);
for(int i=rezult.size()-1,i>0;i--)
{
fout<<rezult[i]<<" ";
}
fout<<rezult[0];
}