#CF1932G. G. 移动平台

G. 移动平台

G. 移动平台
每个测试点时间限制:3 秒
内存限制:512 兆字节

有一个游戏,你需要在迷宫中移动。迷宫由 nn 个平台组成,平台之间有 mm 条通道。

每个平台有一个整数等级 lil_i,取值范围是 00H1H-1
在一步操作中,如果你当前在平台 ii 上,你可以选择停留在这个平台,或者移动到另一个平台 jj
要移动到平台 jj,需要满足:

  • 平台 iijj 之间有通道相连;
  • 且它们的当前等级相同,即 li=ljl_i = l_j

每执行一步操作后,所有平台的等级都会发生变化。
平台 ii 的新等级按如下方式计算:

li=(li+si)modHl'_i = (l_i + s_i) \bmod H

对所有 ii 都成立。

你从平台 11 出发。请找到到达平台 nn 所需的最少步数。


输入
第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含三个整数 n,m,Hn, m, H2n1052 \le n \le 10^51m1051 \le m \le 10^51H1091 \le H \le 10^9)。

第二行包含 nn 个整数 lil_i,表示每个平台的初始等级(0liH10 \le l_i \le H-1)。

第三行包含 nn 个整数 sis_i,表示每个平台的等级变化值(0siH10 \le s_i \le H-1)。

接下来 mm 行,每行描述一条通道。每条通道由两个整数表示——相连的平台编号。
每对平台之间最多有一条通道,且没有平台到自身的通道。

所有测试用例的 nn 之和不超过 10510^5,所有测试用例的 mm 之和不超过 10510^5


输出
对于每个测试用例,输出一个整数,表示从平台 11 到平台 nn 所需的最少步数。
如果无法到达平台 nn,则输出 1-1


示例
输入

3
3 3 10
1 9 4
2 3 0
1 2
3 2
1 3
2 1 10
1 2
4 6
1 2
8 7 25
22 14 5 3 10 14 11 1
9 5 4 10 7 16 18 18
2 8
6 3
3 5
7 5
2 6
1 4
4 7

输出

6
-1
52

示例解释(第一个测试用例)

步骤 平台 1 等级 平台 2 等级 平台 3 等级 动作
初始 11 99 44
步 1 停留在平台 1
步 2 33 22
步 3 55 移动到平台 2
步 4 77 88 停留在平台 2
步 5 99 11
步 6 11 44 移动到平台 3