#include<bits/stdc++.h>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
vector<int> neighbours[100000];
vector<int> results;
bool visited[100000];
int node_count;
void read(){
int edge_count,a,b;
in>>node_count>>edge_count;
for(int i=0;i<edge_count;i++){
in>>a>>b;
neighbours[b-1].push_back(a-1);
}
}
void dfs(int node){
visited[node]=true;
for(int i=0;i<neighbours[node].size();i++){
int there=neighbours[node][i];
if(!visited[there])
dfs(there);
}
results.push_back(node+1);
}
void topological_sort(){
for(int i=0;i<node_count;i++){
if(!visited[i])
dfs(i);
}
for(int a:results)
out<<a<<" ";
}
int main(){
read();
topological_sort();
}