Boboland 是一个美丽的国家,拥有 $n$ 个城市和 $m$ 条双向道路,由 Bobo 国王统治。一条双向道路 $(u, v, w)$ 连接城市 $u$ 和城市 $v$,距离为 $w$。保证 Boboland 的每个城市至少连接有一条道路。
第 $i$ 个城市最初有 $a_i$ 名居民,他们过着幸福平静的生活,直到有一天,锤子开始落下!具体来说,每天锤子都会落在 Boboland 的恰好一个城市上,导致该城市的所有居民死亡。
作为 Boboland 的国王,Bobo 需要处理这种情况。但不幸的是,他不知道为什么会发生这场灾难,也无法找到让锤子停止落下的方法。尽管如此,他想出了以下“动态零伤亡政策”:只要某天锤子落在某个城市时,该城市的所有居民都已经转移到其他城市,从而没有造成人员伤亡,就是可以接受的。
在与 Boboland 的先知交谈后,Bobo 获得了以下信息:在接下来的 $q$ 天里,锤子将依次落在城市 $b_1, b_2, \dots, b_q$ 上。在任何时候,如果存在道路 $(u, v, w)$,Bobo 都可以安排将城市 $u$ 的任意一名居民转移到相邻城市 $v$,花费为 $w$。多名居民可以同时转移。此外,任何居民都可以被多次转移。
Bobo 希望确保在 $q$ 天后没有居民死亡,并尽可能减少花费。但是,像往常一样,国王从不亲自计算,所以你必须计算出实现这一目标的最小花费。
由于答案可能很大,你需要输出答案对 $998\,244\,353$ 取模后的结果。注意,你的最小化目标仍然是取模前的总花费,而不是取模后的结果。
输入格式
第一行包含三个整数 $n, m, q$ ($2 \le n \le 10^5, 1 \le m, q \le 10^5$),分别表示 Boboland 的城市数量、道路数量以及先知提供的信息长度。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$),表示每个城市的居民数量。
接下来的 $m$ 行,每行包含 3 个整数 $u, v, w$ ($1 \le u, v \le n, u \neq v, 1 \le w \le 10^9$),表示 Boboland 的一条双向道路 $(u, v, w)$。保证每个城市至少连接有一条道路。
下一行包含 $q$ 个整数 $b_1, b_2, \dots, b_q$ ($1 \le b_i \le n$),表示在接下来的 $q$ 天里,锤子依次落下的城市。
输出格式
输出一行一个整数,表示实现 Bobo 目标所需的最小花费,对 $998\,244\,353$ 取模。
样例
样例输入 1
3 2 2 1 1 1 2 3 10 1 2 1 3 2
样例输出 1
12
样例输入 2
2 1 10 5000 5000 1 2 10000 1 2 2 1 2 2 1 1 1 2
样例输出 2
550000000
说明
对于第一个样例,一种最优安排是在第二天开始时将城市 3 的唯一一名居民转移到城市 2,然后在第三天开始时将城市 2 的两名居民转移到城市 1。总花费为 $10 \cdot 1 + 1 \cdot 2 = 12$。