1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<vector> 5 using namespace std; 6 vector<int> v[100010]; 7 bool vis[100010]; 8 int maxn; 9 void dfs(int x){ 10 11 if(maxn<x) 12 break; 13 else 14 maxn=max(maxn,x); 15 vis[x]=1; 16 for(int i=0;i<v[x].size();i++){ 17 if(vis[v[x][i]]==0) dfs(v[x][i]); 18 } 19 } 20 int main() 21 { 22 int n,m; 23 int x,y; 24 cin>>n>>m; 25 for(int i=1;i<=m;i++) 26 { 27 cin>>x>>y; 28 v[x].push_back(y); 29 } 30 for(int i=1;i<=n;i++) 31 { 32 memset(vis,0,sizeof(vis)); 33 maxn=i; 34 dfs(i); 35 cout<<maxn<<' '; 36 } 37 }