#include <bits/stdc++.h>
using namespace std;
vector<int> totalSum(1e5+7);
void DFS(int node, vector<vector<int>>& g, vector<int>& visited, vector<int>& parent){
visited[node] = 1;
int sum = node;
for (auto &i : g[node]){
if(visited[i] == 0){
parent[i] = node;
DFS(i, g, visited, parent);
}
}
for (auto child : g[node]){
if(child != parent[node]){
sum += totalSum[child];
}
}
totalSum[node] = sum;
}
int main() {
int n,e;
cin >> n >> e;
vector<vector<int>> g(n+5);
for (int i = 0; i < e; i++){
int a, b;
cin >> a >> b;
g[a].push_back(b);
g[b].push_back(a);
}
int source;
cin >> source;
vector<int> visited(n+5, 0);
vector<int> parent(n+5, 0);
DFS(source, g, visited, parent);
for (int i = 1; i <= n; i++){
cout << totalSum[i] << " ";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3RvcjxpbnQ+IHRvdGFsU3VtKDFlNSs3KTsKCnZvaWQgREZTKGludCBub2RlLCB2ZWN0b3I8dmVjdG9yPGludD4+JiBnLCB2ZWN0b3I8aW50PiYgdmlzaXRlZCwgdmVjdG9yPGludD4mIHBhcmVudCl7CgkKCXZpc2l0ZWRbbm9kZV0gPSAxOwoJaW50IHN1bSA9IG5vZGU7Cglmb3IgKGF1dG8gJmkgOiBnW25vZGVdKXsKCQlpZih2aXNpdGVkW2ldID09IDApewoJCQlwYXJlbnRbaV0gPSBub2RlOwoJCQlERlMoaSwgZywgdmlzaXRlZCwgcGFyZW50KTsKCQl9Cgl9CgkKCWZvciAoYXV0byBjaGlsZCA6IGdbbm9kZV0pewoJCWlmKGNoaWxkICE9IHBhcmVudFtub2RlXSl7CgkJCXN1bSArPSB0b3RhbFN1bVtjaGlsZF07CgkJfQoJfQoJCgl0b3RhbFN1bVtub2RlXSA9IHN1bTsKfQoKaW50IG1haW4oKSB7CgkKCWludCBuLGU7CgljaW4gPj4gbiA+PiBlOwoJCgl2ZWN0b3I8dmVjdG9yPGludD4+IGcobis1KTsKCQoJZm9yIChpbnQgaSA9IDA7IGkgPCBlOyBpKyspewoJCWludCBhLCBiOwoJCWNpbiA+PiBhID4+IGI7CgkJZ1thXS5wdXNoX2JhY2soYik7CgkJZ1tiXS5wdXNoX2JhY2soYSk7Cgl9CgkKCWludCBzb3VyY2U7IAogICAgY2luID4+IHNvdXJjZTsKCQoJdmVjdG9yPGludD4gdmlzaXRlZChuKzUsIDApOwoJdmVjdG9yPGludD4gcGFyZW50KG4rNSwgMCk7CgkKCURGUyhzb3VyY2UsIGcsIHZpc2l0ZWQsIHBhcmVudCk7CgkKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CgkJY291dCA8PCB0b3RhbFN1bVtpXSA8PCAiICI7Cgl9CgkKCXJldHVybiAwOwp9