3638. 染色游戏

单测试点时限: 3.0 秒

内存限制: 512 MB

oxx 是一个大土豪,花 58 dollars 买了一个染色游戏:

oxx 通过一系列神乎其神的操作,把地图转换成了一棵树的结构,这棵树有 个结点,且这这棵树根结点是

游戏开始前,已经有 条道路被染色了。具体地,会告诉你两个结点 ,染色的路径是结点 的最短的路径。同一条路径可以被重复染色多次,按多次计算。

现在,oxx 想从一个结点向根结点进发。他希望找一条路,使得路的长度尽可能的长,且路是从该结点走向根结点最短路中的一段。当然,oxx 为了在游戏中获得更多的分数,他希望选择的这条路至少给 条染色的路径完全覆盖。

换句话说:要选出一条最长的路径 ,满足 的祖先,且 被至少 条染色路径完全覆盖。

输入

第一行两个整数 (, ),分别表示结点数量、被染色的路径数量。

第二行包含 个整数 (),分别表示结点 的父结点编号。

接下来的 行,每行包含两个整数 (),表示被染色路径的两个结点编号。

最后一行一个整数 (),表示需要的路径数量。

输出

一个整数,表示最长的路径长度。

样例

Input
4 3
1 2 3
1 2
3 4
4 1
1
Output
3
Input
4 3
1 2 3
1 2
3 4
4 1
3
Output
0
Input
5 3
1 2 3 4
1 3
3 5
1 5
2
Output
2

提示

样例 1 解释:

只需要被一条染色的路径完全覆盖, 恰好被第一条染色路径 覆盖,所以最长的长度为3。

样例 2 解释:

无法做到被所有路径覆盖。

8 人解决,12 已尝试。

9 份提交通过,共有 30 份提交。

9.1 EMB 奖励。

创建: 3 月,2 周前.

修改: 3 月前.

最后提交: 2 月,4 周前.

来源: EOJ Monthly 2018.9