問題文
N 頂点 M 辺からなる有向グラフ G が与えられます.頂点には 1,2,ldots,N の番号がついています.i 番目の辺は ai から bi に向かう有向辺で,ai<bi が成り立っています.
正整数列 W=(W1,W2,ldots,WN) の美しさを,次が成り立つような正整数 x の最大値として定義します.
- G における頂点 1 から頂点 N への任意のパス (v1,ldots,vk) (v1=1,vk=N) に対し,sumi=1kWvi は x の倍数である.
整数列 A=(A1,A2,ldots,AN) が与えられます.正整数列 W=(W1,ldots,WN) を,Aineq−1impliesWi=Ai を満たすように定めるとき,その美しさとしてありうる最大値を求めてください.ただし,最大値が存在しない場合には -1
を出力してください.
制約
- 2leqNleq3times105
- 1leqMleq3times105
- 1leqai<bileqN
- ineqj ならば (ai,bi)neq(aj,bj)
- 与えられるグラフ G において,頂点 1 から頂点 N へのパスが存在する.
- Ai=−1 または 1leqAileq1012
入力
入力は以下の形式で標準入力から与えられます.
N M
a1 b1
vdots
aM bM
A1 A2 ldots AN
出力
正整数列 W の美しさとしてありうる最大値を出力してください.ただし,最大値が存在しない場合には -1
を出力してください.
入力例 1
4 4
1 2
1 3
2 4
3 4
-1 3 7 -1
出力例 1
4
頂点 1 から頂点 N へのパスは,(1,2,4), (1,3,4) の 2 個です. 例えば W=(5,3,7,8) の美しさは 4 となります.実際,W1+W2+W4=16, W1+W3+W4=20 はともに 4 の倍数です.
入力例 2
4 5
1 2
1 3
2 4
3 4
1 4
-1 3 7 -1
出力例 2
1
頂点 1 から頂点 N へのパスは,(1,2,4), (1,3,4), (1,4) の 3 個です. 例えば W=(5,3,7,8) の美しさは 1 となります.
入力例 3
4 4
1 2
1 3
2 4
3 4
3 -1 -1 7
出力例 3
-1
例えば W=(3,10100,10100,7) の美しさは 10100+10 となります.W の美しさをいくらでも大きくできるため,その最大値は存在しません.
入力例 4
5 5
1 3
3 5
2 3
3 4
1 4
2 -1 3 -1 4
出力例 4
9