/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone{
public static int[] bfs(List<List<Integer>> adj,int src,int n){
Queue<Integer> q = new LinkedList<>();
q.add(src);
int lvl[] = new int[n+1];
lvl[src] = 0;
int ways[] = new int[n+1];
ways[src] = 1;
while(!q.isEmpty()){
int u = q.poll();
for(int v : adj.get(u)){
if(lvl[v] == -1){
lvl[v] = lvl[u] + 1;
ways[v] = ways[u];
q.offer(v);
}
else if(lvl[v] == lvl[u] + 1){
ways[v] += ways[u];
}
}
}
return ways;
}
Scanner sc
= new Scanner
(System.
in); int n = sc.nextInt();
int m = sc.nextInt();
List<List<Integer>> adj = new ArrayList<>();
for(int i=0;i<=n;i++){
adj.add(new ArrayList<>());
}
for(int i=0;i<m;i++){
int u = sc.nextInt();
int v = sc.nextInt();
adj.get(u).add(v);
adj.get(v).add(u);
}
int src = sc.nextInt();
int ways[] = bfs(adj,src,n);
for(int i=1;i<=n;i++){
System.
out.
println(i
+" "+ways
[i
]); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lewoJcHVibGljIHN0YXRpYyBpbnRbXSBiZnMoTGlzdDxMaXN0PEludGVnZXI+PiBhZGosaW50IHNyYyxpbnQgbil7CiAgICBRdWV1ZTxJbnRlZ2VyPiBxID0gbmV3IExpbmtlZExpc3Q8PigpOwogICAgcS5hZGQoc3JjKTsKICAgIAogICAgaW50IGx2bFtdID0gbmV3IGludFtuKzFdOwogICAgQXJyYXlzLmZpbGwobHZsLC0xKTsKICAgIGx2bFtzcmNdID0gMDsKICAgIAogICAgaW50IHdheXNbXSA9IG5ldyBpbnRbbisxXTsKICAgIHdheXNbc3JjXSA9IDE7CgogICAgd2hpbGUoIXEuaXNFbXB0eSgpKXsKICAgICAgICBpbnQgdSA9IHEucG9sbCgpOwoKICAgICAgICBmb3IoaW50IHYgOiBhZGouZ2V0KHUpKXsKCiAgICAgICAgICAgIGlmKGx2bFt2XSA9PSAtMSl7CiAgICAgICAgICAgICAgICBsdmxbdl0gPSBsdmxbdV0gKyAxOwogICAgICAgICAgICAgICAgd2F5c1t2XSA9IHdheXNbdV07CiAgICAgICAgICAgICAgICBxLm9mZmVyKHYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYobHZsW3ZdID09IGx2bFt1XSArIDEpewogICAgICAgICAgICAgICAgd2F5c1t2XSArPSB3YXlzW3VdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHdheXM7Cn0KCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbnsKCQlTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCQlpbnQgbiA9IHNjLm5leHRJbnQoKTsKCQlpbnQgbSA9IHNjLm5leHRJbnQoKTsKCQlMaXN0PExpc3Q8SW50ZWdlcj4+IGFkaiA9IG5ldyBBcnJheUxpc3Q8PigpOwoJCWZvcihpbnQgaT0wO2k8PW47aSsrKXsKCQkJYWRqLmFkZChuZXcgQXJyYXlMaXN0PD4oKSk7CgkJfQoJCQoJCWZvcihpbnQgaT0wO2k8bTtpKyspewoJCQlpbnQgdSA9IHNjLm5leHRJbnQoKTsKCQkJaW50IHYgPSBzYy5uZXh0SW50KCk7CgkJCWFkai5nZXQodSkuYWRkKHYpOwoJCQlhZGouZ2V0KHYpLmFkZCh1KTsKCQl9CgkJaW50IHNyYyA9IHNjLm5leHRJbnQoKTsKCQlpbnQgd2F5c1tdID0gYmZzKGFkaixzcmMsbik7CgkJCgkJZm9yKGludCBpPTE7aTw9bjtpKyspewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oaSsiICIrd2F5c1tpXSk7CgkJfQoJfQp9