{"trustable":false,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"MD","content":"最近,Ramen 沉迷上了一款名叫 II sutyC 的音游。\n\nII sutyC 是一个下落式音游。简单地说,就是有一个幕布一直再往下滚动,不过只是理解本题题意来讲,你并不需要知道下落式音游是什么(但是 Ramen 依旧强烈安利 II sutyC!)\n\nII sutyC 的谱面上有 n 个音符,m 条“标志线”。每条“标志线”恰连接两个点,而且是有向的——也就是说,你可以从标志线的一端跳到另一端,但是反过来不行。每条标志线有一个权值,我们称之为“标志值”。谱面初始时,可以从其中的给定的 w 个点中的一个开始不断沿标志线跳跃,直到最后在某个音符 s 上结束。只有最后抵达音符 s 才认定为收歌,否则游戏失败。\n\n每轮游戏的得分为跳跃经过的所有标志线上的权值(标志值)之和(如果一条标志线跳过两次,那么得分里也要加两次)。现在 Ramen 想刷出全服最低分以展现自己的压分与底力(注意由于 Ramen 十分神犇所以他只要想跳到一个音符是一定能按准的!),你能否帮他规划一条跳跃路线,并告诉他最低可能的得分是多少?"}},{"title":"Input","value":{"format":"MD","content":"有多组数据,请使用循环读入。\n\n每组数据第一行有三个数 n ≤ 1000, m ≤ 20000, 1 ≤ s ≤ n,n 代表音符的总数,m 代表标志线的数目,s 代表要收歌需要在哪个音符结束。\n\n接下来有 m 行,每行三个整数 p, q, t, 代表从 p 指向 q 有一个标志值为 t 的标志线。\n\n在接下来一样一个整数 0 ≤ w ≤ n 代表 Ramen 可以从哪些音符出发。再接下来有 w 个整数,代表这些音符(的编号)。"}},{"title":"Output","value":{"format":"MD","content":"每组数据输出一行一个整数,即 Ramen 可能得到的最低分(收歌的前提下)。若不可能收歌,请输出一行一个整数 -1。"}},{"title":"Sample Input","value":{"format":"MD","content":"\u003cpre\u003e5 8 5\n1 2 2\n1 5 3\n1 3 4\n2 4 7\n2 5 6\n2 3 5\n3 5 1\n4 5 1\n2\n2 3\n4 3 4\n1 2 3\n1 3 4\n2 3 2\n1\n1\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"MD","content":"\u003cpre\u003e1\n-1\u003c/pre\u003e"}}]}