import java.util.*;
import java.io.*;
public class Main {
static List<Integer>[] graph;
static int[][] dp;
String[] firstLine
= br.
readLine().
split(" "); int n
= Integer.
parseInt(firstLine
[0]); int s
= Integer.
parseInt(firstLine
[1]);
for (int i = 1; i <= n; i++) {
graph[i] = new ArrayList<>();
}
for (int i = 0; i < n - 1; i++) {
String[] edge
= br.
readLine().
split(" "); graph[u].add(v);
graph[v].add(u);
}
dp = new int[n + 1][2];
dfs(s, 0);
}
static void dfs(int node, int parent) {
dp[node][0] = 0; // 不选当前节点
dp[node][1] = 1; // 选当前节点
for (int neighbor : graph[node]) {
if (neighbor == parent) continue;
dfs(neighbor, node);
// 不选当前节点时,子节点可选可不选
dp
[node
][0] += Math.
max(dp
[neighbor
][0], dp
[neighbor
][1]); // 选当前节点时,子节点不能选
dp[node][1] += dp[neighbor][0];
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5pby4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgc3RhdGljIExpc3Q8SW50ZWdlcj5bXSBncmFwaDsKICAgIHN0YXRpYyBpbnRbXVtdIGRwOwogICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24gewogICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pKTsKICAgICAgICBTdHJpbmdbXSBmaXJzdExpbmUgPSBici5yZWFkTGluZSgpLnNwbGl0KCIgIik7CiAgICAgICAgaW50IG4gPSBJbnRlZ2VyLnBhcnNlSW50KGZpcnN0TGluZVswXSk7CiAgICAgICAgaW50IHMgPSBJbnRlZ2VyLnBhcnNlSW50KGZpcnN0TGluZVsxXSk7CiAgICAgICAgCiAgICAgICAgZ3JhcGggPSBuZXcgQXJyYXlMaXN0W24gKyAxXTsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICAgICAgZ3JhcGhbaV0gPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgICAgIFN0cmluZ1tdIGVkZ2UgPSBici5yZWFkTGluZSgpLnNwbGl0KCIgIik7CiAgICAgICAgICAgIGludCB1ID0gSW50ZWdlci5wYXJzZUludChlZGdlWzBdKTsKICAgICAgICAgICAgaW50IHYgPSBJbnRlZ2VyLnBhcnNlSW50KGVkZ2VbMV0pOwogICAgICAgICAgICBncmFwaFt1XS5hZGQodik7CiAgICAgICAgICAgIGdyYXBoW3ZdLmFkZCh1KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZHAgPSBuZXcgaW50W24gKyAxXVsyXTsKICAgICAgICBkZnMocywgMCk7CiAgICAgICAgCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGRwW3NdWzFdKTsKICAgIH0KICAgIAogICAgc3RhdGljIHZvaWQgZGZzKGludCBub2RlLCBpbnQgcGFyZW50KSB7CiAgICAgICAgZHBbbm9kZV1bMF0gPSAwOyAgLy8g5LiN6YCJ5b2T5YmN6IqC54K5CiAgICAgICAgZHBbbm9kZV1bMV0gPSAxOyAgLy8g6YCJ5b2T5YmN6IqC54K5CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgbmVpZ2hib3IgOiBncmFwaFtub2RlXSkgewogICAgICAgICAgICBpZiAobmVpZ2hib3IgPT0gcGFyZW50KSBjb250aW51ZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRmcyhuZWlnaGJvciwgbm9kZSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyDkuI3pgInlvZPliY3oioLngrnml7bvvIzlrZDoioLngrnlj6/pgInlj6/kuI3pgIkKICAgICAgICAgICAgZHBbbm9kZV1bMF0gKz0gTWF0aC5tYXgoZHBbbmVpZ2hib3JdWzBdLCBkcFtuZWlnaGJvcl1bMV0pOwogICAgICAgICAgICAvLyDpgInlvZPliY3oioLngrnml7bvvIzlrZDoioLngrnkuI3og73pgIkKICAgICAgICAgICAgZHBbbm9kZV1bMV0gKz0gZHBbbmVpZ2hib3JdWzBdOwogICAgICAgIH0KICAgIH0KfQ==