编程题
### 问题描述
在一个遥远的国度里,有 $n$ 个城市,它们被 $n-1$ 条道路连接。这个国度的领袖小蓝和他的好友小桥决定要建立一个属于他们自己的国家。
但是,统治一个国家可不是件容易的事情。有很多的小偷和恐怖分子时刻准备着破坏国家的和平。经过小蓝和小桥深思熟虑后,他们得出一个结论:从每个城市出发,只要能够到达一个警察局,就可以确保国家的安全。
现在,这个国家里有 $k$ 个警察局,分别位于 $k$ 个不同的城市中。同时,这个国家的城市结构满足上述法律的要求。但是,小蓝认为 $n-1$ 条道路实在是太多了,每条路都需要花费很多的维护费用,而这个国家正面临着财政紧缩的困境。因此,他希望能够关闭尽可能多的道路,同时又能确保国家的安全。
请你帮助小蓝找出能够关闭的最大道路数量。
### 输入格式
第一行包含两个整数 $n, k$,表示城市数量和警察局数量 $(2 \leq n \leq 10^5, 1 \leq k \leq n)$。
第二行包含 $k$ 个整数 $p_1,\dots,p_k$,表示每个警察局所在的城市编号 $(1 \leq p_i \leq n)$。
接下来 $n-1$ 行,每行包含两个整数 $u_i, v_i$,表示一条连接城市 $u_i$ 和 $v_i$ 的道路 $(1 \leq u_i, v_i \leq n, u_i \neq v_i)$。
保证这 $n$ 个城市之间的道路可以保证任意两个城市之间都可以到达。
### 输出格式
第一行输出一个整数 $s$,表示能够关闭的最大道路数量。
### 样例输入
```
5 2
2 5
1 2
2 3
3 4
4 5
```
### 样例输出
```
1
```