#P9307. 珠宝

珠宝

题目描述

NN种珠宝,编号为12N1、2、\dots、N,有MM个限制条件,第ii个条件为AiA_iBiB_i。表示AiA_iBiB_i可以相邻。

现在你要挑选出一些珠宝拼成一排作为礼物送给Alice,但AliceAlice 对一些种类的珠宝特别喜欢,所以要求必须包含KK 种珠宝。

给出必须选择的珠宝,请你求解,让Alice开心的最小珠宝长度。如果无法选出来,输出-1

约束条件

所有输入值都是整数。

1N1051 ≤ N ≤ 10^5

0M1050 ≤ M ≤ 10^5

1Ai<BiN1 ≤ A_i < B_i ≤ N

如果ij,(Ai,Bi)(Aj,Bj).如果 i ≠ j, (A_i, B_i) ≠ (A_j, B_j).

1K171 ≤ K ≤ 17

1C1<C2<<CKN1 ≤ C_1 < C_2 < \dots < C_K ≤ N

输入

第一行两个整数 N,MN,M

接下来MM行,表示一个限制条件

接下来一行一个整数 KK, 表示必须要选出来的珠宝的种类数

最后一行 KK 个整数,C1,C2,...CKC_1,C_2,...C_K 表示必须选择的珠宝

输出

选出来的珠宝的最小长度

样例输入 1

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

样例输出 1

5

珠宝的序列为[1,4,2,4,3][1,4,2,4,3], 包含珠宝1,2,31,2,3.

样例输入 2

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

样例输出 2

-1

样例输入 3

10 10
3 9
3 8
8 10
2 10
5 8
6 8
5 7
6 7
1 6
2 4
4
1 2 7 9

样例输出 3

11

珠宝的序列为[1,6,7,5,8,3,9,3,8,10,2][1,6,7,5,8,3,9,3,8,10,2], 包含珠宝1,2,7,91,2,7,9.