#arc144e. [arc144_e]GCD of Path Weights

[arc144_e]GCD of Path Weights

问题描述

给定一个有NN个顶点和MM条边的有向图GG。顶点编号为1,2,,N1, 2, \ldots, N。第ii条边从顶点aia_i指向顶点bib_i,其中ai<bia_i < b_i

正整数序列W=(W1,W2,,WN)W = (W_1, W_2, \ldots, W_N)美丽度定义为满足以下条件的最大正整数xx

  • 对于图GG中从顶点11到顶点NN的每一条路径(v1,v2,,vk)(v_1, v_2, \ldots, v_k) (其中v1=1,vk=Nv_1 = 1, v_k = N), sumi=1kWvi\\sum_{i=1}^k W_{v_i}xx的倍数。

给定一个整数序列A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N)。找到一个正整数序列W=(W1,W2,,WN)W = (W_1, W_2, \ldots, W_N) 的最大美丽度,使得Aineq1impliesWi=AiA_i \\neq -1 \\implies W_i = A_i。如果不存在最大美丽度,则输出-1

约束条件

  • 2leqNleq3times1052\\leq N\\leq 3\\times 10^5
  • 1leqMleq3times1051\\leq M\\leq 3\\times 10^5
  • 1leqai<bileqN1\\leq a_i < b_i \\leq N
  • 如果ineqji \\neq j,则(ai,bi)neq(aj,bj)(a_i,b_i)\\neq (a_j,b_j)
  • 在给定的图GG中,从顶点11到顶点NN存在一条路径。
  • Ai=1A_i = -1 或者 1leqAileq10121\\leq A_i\\leq 10^{12}

输入

输入数据的格式如下所示,从标准输入中获取:

NN MM a1a_1 b1b_1 vdots\\vdots aMa_M bMb_M A1A_1 A2A_2 ldots\\ldots ANA_N

输出

输出正整数序列WW的最大美丽度。如果最大美丽度不存在,则输出-1


样例输入1

4 4
1 2
1 3
2 4
3 4
-1 3 7 -1

样例输出1

4

从顶点11到顶点NN有两条路径:(1,2,4)(1,2,4)(1,3,4)(1,3,4)。例如,序列W=(5,3,7,8)W = (5, 3, 7, 8) 的美丽度为44。确实,W1+W2+W4=16W_1 + W_2 + W_4 = 16W1+W3+W4=20W_1 + W_3 + W_4 = 20 都是44的倍数。


样例输入2

4 5
1 2
1 3
2 4
3 4
1 4
-1 3 7 -1

样例输出2

1

从顶点11到顶点NN有三条路径:(1,2,4)(1,2,4)(1,3,4)(1,3,4)(1,4)(1,4)。例如,序列W=(5,3,7,8)W = (5, 3, 7, 8) 的美丽度为11


样例输入3

4 4
1 2
1 3
2 4
3 4
3 -1 -1 7

样例输出3

-1

例如,序列W=(3,10100,10100,7)W = (3, 10^{100}, 10^{100}, 7) 的美丽度为10100+1010^{100}+10。由于可以任意增加WW的美丽度,因此不存在最大美丽度。


样例输入4

5 5
1 3
3 5
2 3
3 4
1 4
2 -1 3 -1 4

样例输出4

9