#P1051. Space Trip

Space Trip

题目描述

若干年后,宇宙中发现有 NN 个星球(编号从 11NN)具有文明,并且其中的一些之间还建立了传送通道,使得各个星球上的居民可以相互往来。但是也有一些星球之间还处于敌对状态。

由于某些原因,你必须从你居住的 11 号星球前往遥远的 NN 号星球。这是一次漫长的旅行,为了抵达目的地,你有可能会经过许多别的星球。由于有一些星球目前还处于敌对状态,因此你要避免同时经过这样的星球。比方说,如果星球 AABB 目前处于敌对状态,那么假如你访问过 AA,之后就决不能再访问 BB 了(否则 BB 会认为你是间谍而将你囚禁起来),反之若你首先访问过 BB,那么也不能再访问 AA 了。

现在你手上有一张星际地图,并且你已经知道哪些星球之间目前还处于敌对状态。那么,在不被囚禁的基础上,从起点到终点的最短路程究竟有多长呢?

输入格式

第一行为两个整数 NN, MM2N1002 \leq N \leq 1001M100001 \leq M \leq 10000)。

接下来 MM 行,每行三个整数 AA, BB, DD1A,BN1 \leq A, B \leq N1D100001 \leq D \leq 10000),表示从星球 AA 到星球 BB 存在一条长度为 DD 的(单向)传送通道。

M+2M + 2 行为一个整数 KK0K300 \leq K \leq 30),表示有 KK 对星球目前处于敌对状态。

以下 KK 行,每行两个整数 UU, VV1U,VN1 \leq U, V \leq NUVU \neq V),表示星球 UU 和星球 VV 目前正处于敌对状态。

输入数据保证有解。

输出格式

输出一个整数,表示从 11 号星球到 NN 号星球的最短路程。

样例输入

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

样例输出

4