世界末日即将来临!至少你哥哥是这么告诉你的。为了准备,他在山区深处建造了一个巧妙的隐藏食物补给站和水补给站网络。你现在位于基地,警报响了:你最快需要多少时间才能同时取回食物和水并带回基地?
Public domain, Munds Mountain Trail by Coconino NF Photography via Flickr
输入格式
第一行包含四个整数 $n, m, w, f$,其中 $1 \le n \le 50\,000$ 是隐藏地点的数量,$0 \le m \le 150\,000$ 是网络中路径的数量,$1 \le w \le n$ 是水补给站的总数,$1 \le f \le n$ 是食物补给站的总数。你的基地位于地点 $0$。第二行包含 $w$ 个空格分隔的整数 $u_1, u_2, \dots, u_w$,表示水补给站的(不同)位置(对于每个 $i$,$0 \le u_i < n$)。第三行包含 $f$ 个空格分隔的整数 $v_1, v_2, \dots, v_f$,表示食物补给站的(不同)位置(对于每个 $i$,$0 \le v_i < n$)。
接下来的 $m$ 行,每行描述网络中的一条(双向)路径。第 $i$ 行包含三个空格分隔的整数 $a_i, b_i$ 和 $t_i$,表示地点 $a_i$ 和 $b_i$ 之间有一条路径,通行需要 $t_i$ 小时(对于每个 $i$,$0 \le a_i, b_i < n$ 且 $0 \le t_i < 100$)。
输出格式
输出一个整数,表示取回食物和水并带回基地所需的最少小时数。
样例
样例输入 1
7 7 2 2 3 6 4 5 0 1 3 0 2 1 1 3 3 1 4 1 2 5 2 2 6 10 4 5 1
样例输出 1
14