#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,e;
cin>>n>>e;
vector<int> g[n+1];
for(int i=1;i<=e;i++){
int u;
int v;
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
int s;
cin>>s;
queue<int> q;
q.push(s);
vector<int> level(n+1,-1);
level[s]=0;
vector<int> visited(n+1);
visited[s]=1;
vector<int> ways(n+1,0);
ways[s]=1;
while(!q.empty()){
int a = q.front();
q.pop();
for(auto it : g[a]){
if(!visited[it]){
q.push(it);
visited[it]=1;
level[it] = level[a]+1;
ways[it]=ways[a];
}
else{
if(level[it]==level[a]+1){
ways[it] = ways[it] + ways[a];
}
}
}
}
for(int i=1;i<=n;i++){
cout<< ways[i] << " ";
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKSB7CglpbnQgbixlOwoJY2luPj5uPj5lOwoJdmVjdG9yPGludD4gZ1tuKzFdOwoKCWZvcihpbnQgaT0xO2k8PWU7aSsrKXsKCQlpbnQgdTsKCQlpbnQgdjsKCQljaW4+PnU+PnY7CgoJCWdbdV0ucHVzaF9iYWNrKHYpOwoJCWdbdl0ucHVzaF9iYWNrKHUpOwoJfQoKCWludCBzOwoJY2luPj5zOwoJcXVldWU8aW50PiBxOwoJcS5wdXNoKHMpOwoJdmVjdG9yPGludD4gbGV2ZWwobisxLC0xKTsKCWxldmVsW3NdPTA7CgkKCXZlY3RvcjxpbnQ+IHZpc2l0ZWQobisxKTsKCXZpc2l0ZWRbc109MTsKCXZlY3RvcjxpbnQ+IHdheXMobisxLDApOwoJd2F5c1tzXT0xOwoJCgkKCgoKCXdoaWxlKCFxLmVtcHR5KCkpewogICAgICAgaW50IGEgPSBxLmZyb250KCk7CgkgICAKCSAgIAoJICAgcS5wb3AoKTsKCgoJICAgZm9yKGF1dG8gaXQgOiBnW2FdKXsKICAgICAgICAgICBpZighdmlzaXRlZFtpdF0pewoJCQlxLnB1c2goaXQpOwoJCQl2aXNpdGVkW2l0XT0xOwoJCQlsZXZlbFtpdF0gPSBsZXZlbFthXSsxOwoJCQl3YXlzW2l0XT13YXlzW2FdOwoJCSAgIH0KCQkgICBlbHNlewoJCSAgIAlpZihsZXZlbFtpdF09PWxldmVsW2FdKzEpewoJCSAgIAkJd2F5c1tpdF0gPSB3YXlzW2l0XSArIHdheXNbYV07CgkJICAgCQkKCQkgICAJfQoJCSAgIH0KCSAgIH0KCX0KCglmb3IoaW50IGk9MTtpPD1uO2krKyl7CgkJY291dDw8IHdheXNbaV0gPDwgIiAiOwoJCQoKCX0KfQ==