#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
int n,m,cnt;
struct node{
int to,next;
}a[maxn];
int ans[maxn]={0},head[maxn];
void add(int u,int v){
a[cnt].to=v;
a[cnt].next=head[u];
head[u]=cnt++;
}
void dfs(int u,int v){
if(ans[v]!=0){
return ;
}
ans[v]=u;
for(int i=head[v];i!=-1;i=a[i].next){
int v1=a[i].to;
dfs(u,v1);
}
}
int main(){
cin>>n>>m;
fill(head+1,head+n+1,-1);
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
add(u,v);
}
for(int i=n;i>=1;i--){
dfs(i,i);
}
for(int i=1;i<=n;i++){
cout<<ans[i]<<" ";
}
return 0;
}
求助10分!!!