#include<iostream>
#include<cstring>
using namespace std;
const int N = 100010;
int h[N],e[N],ne[N],idx;
int n ,m;
int mm[N];
void add(int a ,int b){
e[idx] = b , ne[idx] = h[a] , h[a] = idx++;
}
int dfs(int x){
int ma = x;
for(int i = h[x] ; i != -1 ; i = ne[i]){
int j = e[i];
ma = max(ma,dfs(j));
}
mm[x] = ma;
return ma;
}
int main(){
scanf("%d%d",&n,&m);
memset(h,-1,sizeof h);
for(int i = 0 ; i< m ;i++){
int a ,b ;
scanf("%d%d",&a,&b);
add(a,b);
}
dfs(1);
for(int i = 1 ; i <= n ;i++ )
printf("%d ",mm[i]);
}