#include<bits/stdc++.h>
#define yhy 1000005
using namespace std;
int n,m,dis[yhy],num[yhy];
bool b[yhy];
vector<int>f[yhy];
queue<int>q;
void bfs(){
q.push(1);
num[1]=1;
while(!q.empty()){
int l=f[q.front()].size();
for(int i=0;i<l;i++){
q.push(f[q.front()][i]);
if(dis[f[q.front()][i]]>q.front()+1){
dis[f[q.front()][i]]=q.front()+1;
num[f[q.front()][i]]=1;
}
else if(dis[f[q.front()][i]]==q.front()+1)
num[f[q.front()][i]]++;
}
q.pop();
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
dis[i]=INT_MAX;
while(m--){
int x,y;
cin>>x>>y;
if(x==y)
continue;
f[x].push_back(y);
}
bfs();
for(int i=1;i<=n;i++)
cout<<num[i]<<'\n';
return 0;
}