#H63. 【拓展题】最短路径 Plus

【拓展题】最短路径 Plus

Description

  给定 nn 个点(1n1 ∼ n 表示),mm 条边构成的图。

  第 ii 条边 edges[i]={x,y,z}edges[i] = \{x, y, z\} 表示 xxyy 之间有一条长度为 zz 的无向边。请你求出从 11 号点到各点的最短路距离。

  数据范围:100%的数据满足:$1\leq n \leq 10^5, 1\leq m \leq 10^6, 1\leq z\leq 10^9$

Format

Input

  第一行为两个正整数n,mn,m,分别表示点的数目和边的数目

  接下来mm行,每行三个非负整数ui,vi,wiu_i, v_i, w_i,表示 uiu_iviv_i 有一条长度为 wiw_i 的无向边。

  接下来一个整数 rr,表示询问的次数

  最后一行为 r (1r105)r \space (1 \leq r \leq 10^5) 个整数 qi (1qin)q_i \space (1 \leq q_i \leq n),表示询问从 11 号点到 qiq_i 号点的最短路距离,如果从 11 号点不能到达 qiq_i 号点,输出 1-1

Output

  输出一行,共 rr 个整数,表示对于每个询问的回答

Samples

4 6
1 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4
3
1 2 3
0 2 4