#include<bits/stdc++.h>
using namespace std ;
vector< int > G[100005] ;
int dis[100005] , n , m , ans[100005] , dix = 0 ;
void dfs( int u , int jk )
{
dis[jk] = u ;
ans[dix] = max( ans[dix] , u ) ;
if( G[u].size() == 0 ) return ;
for( int i = 0 ; i < G[u].size() ; i ++ )
{
bool f = 1 ;
for( int i = 1 ; i <= jk ; i ++ )
if( G[u][i] == dis[i] )
f = 0 ;
if( f == 1 )
dfs( G[u][i] , jk + 1 ) ;
}
}
int main()
{
cin >> n >> m ;
for( int i = 1 ; i <= m ; i ++ )
{
int a , b ;
cin >> a >> b ;
G[a].push_back( b ) ;
}
for( int i = 1 ; i <= n ; i ++ )
{
dix ++ ;
dfs( i , 1 ) ;
cout << ans[dix] << ' ' ;
}
return 0 ;
}
代码8T求调