7246 - 宝石(gem)

欧艾大陆上有n 座城市,城市从1-n 编号,所有城市经由n-1 条无向道路互相连通,即n 座城市与n-1 条道路构成了一棵树。

每座城市的集市上都会出售宝石,总共有m 种不同的宝石,用1-m 编号。i 号城市的集市出售的是第w_i 种宝石,一种宝石可能会在多座城市的集市出售。

K 神有一个宝石收集器。这个宝石收集器能按照顺序收集至多c 颗宝石,其收集宝石的顺序为:P_1,P_2,...,P_c。更具体地,收集器需要先放入第P_1 种宝石,然后才能再放入第P_2 种宝石,之后再能放入第P_3 种宝石,以此类推。其中P_1,P_2,...,P_c 互不相等。

K 神到达一个城市后,如果该城市的集市上出售的宝石种类和当前收集器中需要放入的种类相同,则他可以在该城市的集市上购买一颗宝石并放入宝石收集器中;否则他只会路过该城市什么都不做。

现在K 神给了你q 次询问,每次给出起点s_i 与终点t_i,他想知道如果从s_i 号城市出发,沿最短路线走到t_i 号城市后,他的收集器中最多能收集到几个宝石?(在每次询问中,收集器内初始时没有任何宝石。起点与终点城市集市上的宝石可以尝试被收集)

输入

第一行包含三个正整数n, m, c,分别表示城市数,宝石种类数,收集器的容量。

第二行包含c 个正整数P_i。数据保证1\le P_i\le m 且这些数互不相等。

第三行包含n 个正整数w_i,表示每个城市集市上出售的宝石种类。

接下来n-1 行,每行两个正整数u_i,v_i,表示一条连接u_iv_i 号城市的道路。

n + 3 行包含一个正整数q 表示询问次数。

接下来q 行,每行两个正整数s_i,t_i 表示该次询问的起点与终点。

输出

按输入顺序输出q 行,每行一个整数表示询问的答案。

样例

输入

7 3 3
2 3 1
2 1 3 3 2 1 3
1 2
2 3
1 4
4 5
4 6
6 7
5
3 5
1 3
7 3
5 7
7 5

输出

2
2
2
3
1

提示

对于所有测试数据:1\le n,q\le 2\times 10^51\le c\le m\le 5\times 10^41\le w_i\le m。 每个测试点的具体限制见下表:

来源

NOI省选

时间限制 1 秒
内存限制 512 MB
讨论 统计
上一题 下一题