#include<bits/stdc++.h>
using namespace std;
int team[200001],n,m,num[100005],x,y,dis[100005],head,tail,u,dt[200005],dt2[200005],ans[100005];
bool exist[100001];
int *a[100005];
int main()
{
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>dt[i]>>dt2[i];
num[dt[i]]++;
}
for(int i=1;i<=n;i++)
a[i]=new int[num[i]];
for(int i=1;i<=m;i++)
{
*a[dt[i]]=dt2[i];
a[dt[i]]++;
}
for(int i=1;i<=n;i++)
a[i]-=num[i];
for(int ii=1;ii<=n;ii++)
{
memset(exist,false,sizeof(exist));
memset(team,0,sizeof(team));
memset(dis,0,sizeof(dis));
dis[ii]=1;
exist[ii]=true;
team[1]=ii;
head=0;
tail=1;
do
{
head++;
head=((head-1)%200001)+1;
u=team[head];
exist[u]=false;
for(int i=1;i<=num[u];i++,a[u]++)
{
if(dis[*a[u]]<dis[u]+1)
{
dis[*a[u]]=dis[u]+1;
if(!exist[*a[u]])
{
tail++;
tail=((tail-1)%200001)+1;
team[tail]=*a[u];
exist[*a[u]]=true;
}
}
}
a[u]-=num[u];
}while(head!=tail);
for(int i=1;i<=n;i++)
ans[i]=max(ans[i],dis[i]);
}
for(int i=1;i<=n;i++)
cout<<ans[i]<<endl;
return 0;
}