#include <iostream>
#include<bits/stdc++.h>
using namespace std;
void dfs(vector<bool>&vis,vector<vector<int>>&adjlist,int curr,vector<int>&height){
vis[curr]=true;
for(int adj : adjlist[curr]){
if(!vis[adj]){
dfs(vis,adjlist,adj,height);
height[curr]=max(height[curr],1+height[adj]);
}
}
height[curr]=max(height[curr],1);
}
int main() {
int n ; int m ;
cin>>n>>m;
vector<vector<int>>adjlist(n+1);
vector<bool>vis(n+1,false);
vector<int>height(n+1,0);
for(int i = 0 ; i<m;i++){
int u ; int v ;
cin>>u>>v;
adjlist[u].push_back(v);
adjlist[v].push_back(u);
}
dfs(vis,adjlist,1,height);
for(int i = 1; i<=n;i++){
cout<<height[i]<<" ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCnZvaWQgZGZzKHZlY3Rvcjxib29sPiZ2aXMsdmVjdG9yPHZlY3RvcjxpbnQ+PiZhZGpsaXN0LGludCBjdXJyLHZlY3RvcjxpbnQ+JmhlaWdodCl7Cgl2aXNbY3Vycl09dHJ1ZTsKCWZvcihpbnQgYWRqIDogYWRqbGlzdFtjdXJyXSl7CgkJaWYoIXZpc1thZGpdKXsKCQkJZGZzKHZpcyxhZGpsaXN0LGFkaixoZWlnaHQpOwoJCQloZWlnaHRbY3Vycl09bWF4KGhlaWdodFtjdXJyXSwxK2hlaWdodFthZGpdKTsKCQl9Cgl9CgloZWlnaHRbY3Vycl09bWF4KGhlaWdodFtjdXJyXSwxKTsKfQppbnQgbWFpbigpIHsKICAgIGludCBuIDsgaW50IG0gOyAKICAgIGNpbj4+bj4+bTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj5hZGpsaXN0KG4rMSk7CiAgICB2ZWN0b3I8Ym9vbD52aXMobisxLGZhbHNlKTsKICAgIHZlY3RvcjxpbnQ+aGVpZ2h0KG4rMSwwKTsKICAgIGZvcihpbnQgaSA9IDAgOyBpPG07aSsrKXsKICAgIAlpbnQgdSA7IGludCB2IDsgCiAgICAJY2luPj51Pj52OwogICAgCWFkamxpc3RbdV0ucHVzaF9iYWNrKHYpOwogICAgCWFkamxpc3Rbdl0ucHVzaF9iYWNrKHUpOwogICAgfQogICAgZGZzKHZpcyxhZGpsaXN0LDEsaGVpZ2h0KTsKICAgIGZvcihpbnQgaSA9IDE7IGk8PW47aSsrKXsKICAgIAljb3V0PDxoZWlnaHRbaV08PCIgIjsKICAgIH0KCXJldHVybiAwOwp9