#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
#include<cstdlib>
#define ll long long
using namespace std;
struct Edge
{
int next;
int to;
}edge[200010];
int head[100010]={0};
int cnt=0;
void add(int u,int v)
{
cnt++;
edge[cnt].to=v;
edge[cnt].next=head[u];
head[u]=cnt;
}
inline ll read()
{
ll s=0,w=1;char ch=getchar();
while(ch<'0'||ch>'9')if(ch=='-')w=-1,ch=getchar();
while(ch>='0'&&ch<='9')s=s*10+ch-'0',ch=getchar();
return s*w;
}
ll n,m,su,sv;
queue <ll>Q;
ll inq[1000010]={0};
ll dis[1000010]={0};
ll ans[1000010]={0};
int main()
{
n=read(),m=read();
for(ll i=1;i<=m;i++)su=read(),sv=read(),add(su,sv),add(sv,su);
dis[1]=0;inq[1]=1;
Q.push(1);
ans[1]=1;
while(!Q.empty())
{
int u=Q.front();
Q.pop();
for(int i=head[u];i;i=edge[i].next)
{
int v=edge[i].to;
if(inq[v]==0)
{
inq[v]=1;
dis[v]=dis[u]+1;
Q.push(v);
}
if(dis[v]==dis[u]+1)
{
ans[v]=(ans[v]+ans[u])%100003;
}
}
}
for(ll i=1;i<=n;i++)cout<<ans[i]<<"\n";
return 0;
}