20分 MLE 链接
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<vector>
using namespace std;
int n,m;
vector<int> a[100010];
int dfs(int i){
int Max=i;
for(int j=0;j<a[i].size();j++){
Max=max(Max,dfs(a[i][j]));
}
return Max;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
int u,v;
scanf("%d%d",&u,&v);
a[u].push_back(v);
}
for(int i=1;i<=n;i++){
printf("%d ",dfs(i));
}
return 0;
}