#Lutece3134. 放晴

放晴

Migrated from Lutece 3134 放晴

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description


许多年后,年迈的肥伦去世了,芙莉莲又一次葬送了她最亲密的朋友。

她们曾经一起走过许多地方,留下了许多回忆。

现在,芙莉莲决定重新走一遍曾经的旅途,重新拾起美好的瞬间。

她们曾经一共走过nn个村庄,这nn个村庄由mm条双向道路连接而成。

在这nn个村庄中,芙莉莲决定这次重返旅途一定要经过某kk个特定的村庄,其他的村庄随意。

由于时间有限,这次旅途的总时间为ss天,每天她要从一个村庄走到与该村庄相连的其他村庄,不能停留,即第二天要走到与当前所在村庄不同的其他村庄

走到起始的村庄会看作为第一天,具体的,我们可以用一个长度为ss的序列seqseq来表示一次旅途的过程,seqiseq_i表示第ii天芙莉莲所在的村庄,seq1seq_1也就是起始村庄了,起始村庄可以任意选,每个村庄都可以在序列里面出现多次。

seqAseqAseqBseqB这俩个序列看作不一样当且仅当存在一个ii使得seqAiseqBiseqA_i\neq seqB_i

一个满足所有要求的旅途序列被看作一个合法的旅途方案。芙莉莲不知道一共有多少种合法的旅途方案,请你帮帮她吧。芙莉莲很聪明,你只需要告诉她合法的方案数模(109+9)(10^9+9)后得到的答案。

注意模数

Input

第一行四个整数n,m,k,s.n,m,k,s.$(1\leq n \leq20,1\leq m \leq150,0\leq k \leq min(7,n),1\leq s\leq 10^9)$ 第二行kk个整数表示kk个必须经过的村庄编号. 接下来mm行,每行俩个整数u,vu,v表示村庄uu和村庄vv之间有一条边,不存在重边和自环。

Output

一行一个整数,表示合法的方案数模上(109+9)(10^9+9)后的答案.

Samples

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

Resources

2024 UESTC ICPC Training for Search and Dynamic Programming