F 题:哈库纳马塔塔 (Hakuna Matata)
在弗洛克岛 (Flock Island) 上,有 $k$ 个不同的部落居住在 $k$ 个不同的地点。弗洛克岛的地图是一个连通图,包含 $n$ 个地点(顶点)和 $n-1$ 条道路(边)。
由于近期岛上各部落之间存在意见分歧,内部战争已经爆发。每天,每个部落都会向其所有相邻的地点扩张,并占领这些地点。如果两个部落到达同一个地点,或者一个部落到达了一个已经被另一个部落占领的地点,这两个部落就会进行谈判,从而结成联盟,此后它们将作为一个统一的部落行动(甚至可能在同一时刻有超过两个部落结盟!)。
作为世界和平组织的间谍,你的任务是根据输入的弗洛克岛地图,找出战争开始后,所有 $k$ 个部落在内部战争中结盟并达成一致的最早天数。
输入格式
输入的第一行包含两个整数 $n$ 和 $k$,分别表示岛上的地点数量和部落数量。接下来的 $n-1$ 行,每行包含两个整数 $u_i$ 和 $v_i$,表示岛屿图中第 $i$ 条边的两个端点。随后的一行包含 $k$ 个不同的整数,表示图中 $k$ 个部落的初始位置 $a_i$。保证输入的图满足连通且有效。
输出格式
在唯一的一行输出中,打印所有部落结盟并达成一致所需的最少天数。
数据范围
- $1 \le n \le 10^6$
- $1 \le k, a_i \le n$
样例
样例 1
输入:
5 3 1 2 1 3 1 4 1 5 2 3 4
输出:
1
样例 2
输入:
4 2 1 2 2 3 3 4 1 4
输出:
2
样例 3
输入:
8 3 1 2 2 3 3 4 4 5 5 6 3 7 7 8 2 6 8
输出:
2