#include<bits/stdc++.h>
using namespace std;
struct node{
int to,next;
}a[200001];
int n,m,h[100001],du[100001],vt[100001],sy[100001],num,x,y,sum=0;
void add(int x,int y){num++;
a[num].to=y;
a[num].next=h[x];
h[x]=num;
du[y]++;vt[x]++;
}
int dfs(int s){
if(!vt[s]) {sy[s]=1;return 1;}
if(sy[s]) return sy[s];
for(int i=h[s];i;i=a[i].next) sum=max(sum,dfs(a[i].to));
sy[s]=sum+1;
return sy[s];
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>x>>y;
add(y,x);
}
for(int i=1;i<=n;i++) if(!du[i]) dfs(i);
for(int i=1;i<=n;i++) cout<<sy[i]<<endl;
return 0;
}
29行 ,你比我长,我就死亡