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