https://www.luogu.com.cn/problem/P1144

#include<bits/stdc++.h>
#define lc p<<1
#define rc p<<1|1
#define INF 1e18
using namespace std;
#define lowbit(x) x&(-x)
#define endl '\n'
using ll = long long;
using pii = pair<int,ll>;
const double PI = acos(-1);
const int N=1e6+10;
const int M=1e6+10;
const int mod=100003;
vector<pii> g[N];
int n,m;
bool st[N];
ll dis[N];
int cnt[N];
void dijstra(){
	for(int i=1;i<=n;i++)
		dis[i]=1e18;
	
	priority_queue<pii,vector<pii>,greater<pii>>q;
	dis[1]=0;
	cnt[1]=1;
	q.push({0,1});
	while(q.size()){
		auto [dist,u]=q.top();
		q.pop();
		if(st[u]) continue;
		st[u]=1;
		for(auto [v,d]:g[u]){
			if(st[v]) continue;
			if(dist+d<dis[v]){
				dis[v]=dist+d;
				cnt[v]=cnt[u]%mod;
				q.push({dis[v],v});
			}
			else if(dist+d==dis[v]){
				cnt[v]=(cnt[v]+cnt[u])%mod;
			}
		}
	}
}
void solve(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v;cin>>u>>v;
		g[u].push_back({v,1});
		g[v].push_back({u,1});
	}
	dijstra();
	for(int i=1;i<=n;i++){
		cout<<cnt[i]<<endl;
	}
	
}

int main() {
//	ios::sync_with_stdio(false);
//	cin.tie(nullptr), cout.tie(nullptr);
	int T = 1;
//	cin>>T;
	while (T--) {
		solve();
	}
	
	return 0;
}