#abc307f. [abc307_f]Virus 2

[abc307_f]Virus 2

問題文

部屋 11, 部屋 22, ldots\\ldots, 部屋 NN と番号づけられた NN 個の部屋に人が 11 人ずつ住んでおり、 また、いくつかの相異なる 22 つの部屋の間は通路によって結ばれています。 通路は MM 本あり、ii 本目の通路は部屋 UiU_i と部屋 ViV_i を結んでおり、長さは WiW_i です。

ある日(これを 00 日目とします)の夜に、部屋 A1,A2,ldots,AKA_1,A_2,\\ldots, A_K に住んでいる KK 人がウイルスに(新しく)感染してしまいました。 さらにその後の DD 日間で ii 日目 (1leqileqD)(1\\leq i\\leq D) には次のように感染が広がりました。

(i1)(i-1) 日目の夜の時点で感染していた人は、ii 日目の夜の時点でも感染していた。
そうでない人については、(i1)(i-1) 日目の夜の時点で感染していた人の住んでいる部屋のうちの少なくとも 11 つから 距離 XiX_i 以内の部屋に住んでいた時かつその時に限り、新しく感染した。 ここで、部屋 P,QP,Q の間の距離は、部屋 PP から 部屋 QQ まで通路のみを使って移動する時に通る通路の長さの総和としてあり得る最小値として定義される。 ただし、部屋 PP から 部屋 QQ へ通路のみを使って移動する事ができない時、距離は 1010010^{100} とする。

ii (1leqileqN1\\leq i\\leq N) について、部屋 ii に住んでいる人がそれぞれ何日目の夜に(新しく)感染したか出力してください。ただし、DD 日目の夜の時点で感染していない場合は \-1\-1 を出力してください。

制約

  • 1leqNleq3times1051 \\leq N\\leq 3\\times 10^5
  • 0leqMleq3times1050 \\leq M\\leq 3\\times 10^5
  • 1leqUi<VileqN1 \\leq U_i < V_i\\leq N
  • (Ui,Vi)(U_i,V_i) はすべて異なる。
  • 1leqWileq1091\\leq W_i\\leq 10^9
  • 1leqKleqN1 \\leq K\\leq N
  • 1leqA1<A2<cdots<AKleqN1\\leq A_1<A_2<\\cdots<A_K\\leq N
  • 1leqDleq3times1051 \\leq D\\leq 3\\times 10^5
  • 1leqXileq1091\\leq X_i\\leq 10^9
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN MM U1U_1 V1V_1 W1W_1 U2U_2 V2V_2 W2W_2 vdots\\vdots UMU_M VMV_M WMW_M KK A1A_1 A2A_2 ldots\\ldots AKA_K DD X1X_1 X2X_2 ldots\\ldots XDX_D

出力

NN 行出力せよ。
ii 行目 (1leqileqN)(1\\leq i\\leq N) には、部屋 ii に住んでいる人が何日目の夜に(新しく)感染したか出力せよ。


入力例 1

4 4
1 2 2
2 3 1
2 4 3
3 4 2
1
1
2
3 3

出力例 1

0
1
1
2

次のように感染は広がります。

  • 00 日目の夜、部屋 11 に住んでいる人が感染する。
  • 部屋 11 と部屋 2,3,42,3,4 の間の距離はそれぞれ 2,3,52,3,5 である。よって、X1=3X_1=3 であるから、11 日目の夜、部屋 2,32,3 に住んでいる人が新しく感染する。
  • 部屋 33 と部屋 44 の間の距離は 22 である。よって、X2=3X_2=3 であるから、22 日目の夜、部屋 44 に住んでいる人も感染する。

よって、部屋 1,2,3,41,2,3,4 に住んでいる人はそれぞれ 0,1,1,20,1,1,2 日目に新しく感染したため、0,1,1,20,1,1,2 をこの順で各行に出力します。


入力例 2

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

出力例 2

0
1
2
-1
2
0
-1

入力例 3

5 1
1 2 5
2
1 3
3
3 7 5

出力例 3

0
2
0
-1
-1

どの 22 つの部屋の間も通路のみを使って移動できるとは限らないことに注意してください。