题目描述
给你一棵 n 个点的无根树,有 k 个点初始为黑色,其余点初始为灰色,你可以在一开始将一些灰色点染成白色。染完后,现在进行如下操作,直到树上不存在灰色点。
每一轮对所有灰色点同时进行如下操作:
- 检查与该灰色点 u 直接相连的点有没有黑色或白色点,如果没有,则 u 保持灰色。
- 如果与 u 直接相连的点有白色点,则 u 变为白色。
- 如果与 u 直接相连的点有黑色点,则 u 变为黑色。
这个顺序说明同时与白色和黑色相邻时会被染成白色。
注意此处对所有灰色点同时进行操作,也就是说在这一轮被染上颜色的点不能作为其它点改变颜色的根据。
现在求一开始最少染几个点为白色,可以使树最终黑色点不超过 k 个。
输入格式
从标准输入读入数据。
第一行两个整数 n,k(1≤n≤106,1≤k≤n),含义见上文。
第二行 k 个整数,代表一开始被染成黑色的点的标号。
第 3∼n+2 行每行两个整数 u,v(1≤u,v≤n),代表一条树上的边。
输出格式
输出到标准输出。
一行一个整数,为答案。
样例
输入
5 2
3 5
1 2
1 3
2 4
2 5
输出
1
样例二
见下载目录下的 ex_2.in 与 ex_2.ans。
解释
- 对于第一组样例,一开始将 2 号点染白即可
- 对于第二组样例,一开始将 3,,4,9 号点染白为满足条件且数量最小一组方案