#include <bits/stdc++.h>
using namespace std;
int n,m;
vector<vector<int>> mp;
map<pair<int,int>,bool> vis;
int cnt[1000007],num[1000007];
const int inf=0x3f3f3f3f;
struct point{
int step,now,pl;
};
void bfs(int st){
queue<point> q;
point p114514;
p114514.now =1;
p114514.step =0;
p114514.pl =1;
q.push(p114514);
num[1]=0,cnt[1]=1;
while(!q.empty()){
point p=q.front();q.pop();
int x=p.now ;
for(int i=0;i<mp[x].size();i++){
int y=mp[x][i];
if(num[y]>p.step +1){
num[y]=p.step+1;
cnt[y]=p.pl ;
cnt[y]%=100003;
point p1;
p1.now =y,p1.pl =p.pl,p1.step =num[y];
q.push(p1);
}else if(num[y]==p.step+1){
cnt[y]+=p.pl ;
cnt[y]%=100003;
point p1;
p1.now =y,p1.pl =p.pl,p1.step =num[y];
q.push(p1);
}
}
}
}
int main()
{
cin>>n>>m;
memset(num,inf,sizeof(num));
mp.resize(n+1);
for(int i=1;i<=m;i++){
int x,y;
scanf("%d%d",&x,&y);
if(x==y)continue;
mp[x].push_back(y);
mp[y].push_back(x);
}
bfs(1);
for(int i=1;i<=n;i++){
cout<<cnt[i]<<endl;
}
return 0;
}