#include<queue>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=1e6+10,M=2e6+10;
ll n,m,a[N],b[N];
bool u[N];
vector<ll>p[N];
struct stu{
ll x,cost;
stu(ll ax=0,ll ay=0){
x=ax;
cost=ay;
}
};
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
ll x,y;
cin>>x>>y;
p[x].push_back(y);
p[y].push_back(x);
}
a[1]=1;
queue<stu>q;
q.push(stu(1,0));
u[1]=1;
while(!q.empty()){
stu node=q.front();
ll x=node.x,cost=node.cost;
if(!b[x])b[x]=cost;
q.pop();
for(int i=0;i<p[x].size();i++){
if(u[p[x][i]]==0){
u[p[x][i]]=1;
q.push(stu(p[x][i],cost+1));
}
}
for(int i=0;i<p[x].size();i++){
if(b[p[x][i]]==cost-1){
a[x]+=a[p[x][i]];
}
}
}
for(int i=1;i<=n;i++){
cout<<a[i]<<endl;
}
return 0;
}