#include<bits/stdc++.h>
using namespace std;
int edge[1000001],next[1000001];
int head[1000001],cnt;
void Init(){
for(int i=0;i<1000001;i++)
head[i]=next[i]=-1;
cnt=0;
}
void add(int u,int v){
edge[cnt]=v;
next[cnt]=head[u];
head[u]=cnt++;
}
int n,m;
int ans[1000001];
void dfs(int n,int a){
if(ans[n]) return;
ans[n]=a;
for(int i=head[n];i!=-1;i=next[i])
dfs(edge[i],a);
}
int main(){
Init();
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
add(v,u);
}
for(int i=n;i;i--)
if(!ans[i]) dfs(i,i);
for(int i=1;i<=n;i++)
cout<<ans[i]<<" ";
return 0;
}