#3 野外拓展训练

#3 野外拓展训练

Description

Nicloe 所在的公司经常组织职员进行一些拓展训练。上个季度刚刚举行了一次定向运
动,大家反映很好。这个月轮到Nicloe 的部门做策划,既然大家都已经熟悉了看地图和使
用指南针,她们决定在森林公园做一次与定向运动类似的野外拓展训练,不过规则稍作修改。
由于大家不是专业运动员,体力有限,现在Nicloe 准备通过计算机的帮助寻找各种情
况下的最短路线,以便从中选出部分作为本次拓展训练的方案,请你帮忙设计程序。
制定的规则如下:地图上包括起点与终点在内共N 个点,每两点之间有一条单行道,共
有M 条;从所有点中选择其中K 个作为一个方案的有效点标,允许大家从规定的起点按任意
顺序经过所有有效点标到达规定的终点,求出最短距离。

Format

Input

第一行5 个整数n、m、k、s、t,分别表示地图上已有点的总个数、每两点间单行道总
条数、本次有效点标个数、起点编号、终点编号。
接下来m 行,每行3 个整数x、y、z,表示有一条从x 点到y 点的长度为z 的单行道。
接下来k 行,每行1 个整数,表示本次有效点标的编号。

Output

输出一个整数,表示最短距离,若没有方案可行则输出-1。

Sample 1

Input

3 3 2 1 1
1 2 1
2 3 1
3 1 1
2
3

Output

3

【样例1 解释】
路径为1->2->3->1。

Sample 2

Input

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

Output

4

【样例2 解释】
路径为1->2->3->4->1。

Limitation

20%的数据n<=10。
50%的数据n<=1000。
100%的数据n<=50000,m<=100000,0<=k<=10,1<=z<=5000。
另有20%的数据k=0。