#include<bits/stdc++.h>
using namespace std;
int n,m,x,y;
bool f=1;
struct s{
bool b=1;
int s=-2147483648;
vector<int>v;
}g[200000];
void dfs(int p){
for(int i=0;i<g[p].v.size();i++)
if(g[g[p].v[i]].b){
g[g[p].v[i]].b=0;
if(g[g[p].v[i]].s<g[p].s+1){
f=1;
g[g[p].v[i]].s=g[p].s+1;
dfs(g[p].v[i]);
}
g[g[p].v[i]].b=1;
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>x>>y;
g[x].v.push_back(y);
}
while(f){
for(int i=1;i<=n;i++) g[i].b=1;
g[1].b=0;
g[1].s=1;
dfs(1);
f=0;
}
for(int i=1;i<=n;i++) cout<<g[i].s<<endl;
return 0;
}
0分????????????????????????????????