#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
int e;
cin>>e;
vector<int> g[n+1];
for(int i=1; i<=e; i++){
int u,v;
cin>>u;
cin>>v;
g[u].push_back(v);
g[v].push_back(u);
}
int source = 1;
// solution;
queue<int> q;
q.push(source);
vector<int> record (n+1,-1);
record[source]=0;
// number of shortes paths:-
vector<int> count(n+1, 0);
while(!q.empty()){
int t = q.front();
q.pop();
for(auto x: g[t]){
if(record[x]<0){
q.push(x);
record[x] = record[t]+1;
count[x]++;
}
else if(record[x] == record[t]+1){
count[x]++;
}
}
}
for(int i=1; i<=n; i++){
cout<< count[i]<< " ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKSB7CgkKCWludCBuOwoJY2luPj5uOwoJaW50IGU7CgljaW4+PmU7CgoJdmVjdG9yPGludD4gZ1tuKzFdOwoKCWZvcihpbnQgaT0xOyBpPD1lOyBpKyspewoJCWludCB1LHY7CgkJY2luPj51OwoJCWNpbj4+djsKCQlnW3VdLnB1c2hfYmFjayh2KTsKCQlnW3ZdLnB1c2hfYmFjayh1KTsKCX0KCglpbnQgc291cmNlID0gMTsKCgkvLyBzb2x1dGlvbjsKCglxdWV1ZTxpbnQ+IHE7CgoJcS5wdXNoKHNvdXJjZSk7CgoJdmVjdG9yPGludD4gcmVjb3JkIChuKzEsLTEpOwoJcmVjb3JkW3NvdXJjZV09MDsKCQoJLy8gbnVtYmVyIG9mIHNob3J0ZXMgcGF0aHM6LQoJdmVjdG9yPGludD4gY291bnQobisxLCAwKTsKCQoJd2hpbGUoIXEuZW1wdHkoKSl7CgkJCgkJaW50IHQgPSBxLmZyb250KCk7CgkJCgkJcS5wb3AoKTsKCQkKCQlmb3IoYXV0byB4OiBnW3RdKXsKCQkJCgkJCWlmKHJlY29yZFt4XTwwKXsKCQkJCXEucHVzaCh4KTsKCQkJCXJlY29yZFt4XSA9IHJlY29yZFt0XSsxOwoJCQkJY291bnRbeF0rKzsKCQkJfQoJCQllbHNlIGlmKHJlY29yZFt4XSA9PSByZWNvcmRbdF0rMSl7CgkJCQljb3VudFt4XSsrOwoJCQl9CgkJfQoKCX0KCglmb3IoaW50IGk9MTsgaTw9bjsgaSsrKXsKCQljb3V0PDwgY291bnRbaV08PCAiICI7Cgl9CgoJcmV0dXJuIDA7Cn0=