#include <bits/stdc++.h>
#pragma GCC optmize(2)
#define debug puts("done")
using namespace std;
int n,m,u,v;
vector<int> e[100005];
int dp[100005],vis[100005];
void dfs(int u){
dp[u]=u;
for(int i=0;i<e[u].size();i++){
int v=e[u][i];
while(vis[v]<=e[v].size()) vis[v]++,dfs(v);
dp[u]=max(dp[u],dp[v]);
}
return;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v;
e[u].push_back(v);
}
for(int i=1;i<=n;i++){
while(vis[i]<=e[i].size()) vis[i]++,dfs(i);
cout<<dp[i]<<" ";
}
return 0;
}