WA 了 15。
#include <bits/stdc++.h>
typedef long long ll;
const int N = 2e5 + 10;
int n, k;
bool dp[N];
std::vector <int> G[N];
void dfs(int u, int pre) {
for (auto v : G[u]) {
if (v == pre) continue ;
dfs(v, u);
dp[u] |= dp[v];
}
return void();
}
int main() {
// freopen(".in", "r", stdin);
// freopen(".out", "w", stdout);
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout.tie(nullptr);
std::cin >> n >> k;
int rt = 0;
for (int i = 1; i < n; ++ i) {
int u, v; std::cin >> u >> v;
G[u].push_back(v);
G[v].push_back(u);
rt = u;
}
for (int i = 1; i <= k; ++ i) {
int tmp; std::cin >> tmp;
dp[tmp] = 1;
}
dfs(rt, 0);
int ans = 0;
for (int i = 1; i <= n; ++ i) ans += dp[i];
std::cout << ans << "\n";
return 0;
}