霜雪千年
题号:NC236764
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

枫红十里长街
红帘后谁人蹙着眉
遥梦桑竹桃源
轮回中曾道别的地点
愿今生再相见
消融你眉间
悲戚霜雪

世界由  个国家组成,由  条边连接且保证联通。 年之中,在第  年暴风雪会随机袭击  个国家。

第  个国家的抗寒能力为  ,如果这个国家连续  年都被暴风雪袭击那么这个国家将会被冰封(但没有暴风雪的那一年会马上解冻)。

定义一年世界的混乱程度为所有未冰封国家组成的生成子图的联通块数量。

求世界  年中每一年的混乱程度之和的期望值。

输入描述:


第一行输入两个正整数  

接下来一行  个正整数,第  个数   表示第  年暴风雪会袭击的国家个数。

接下来一行  个正整数,第  个数  表示第  个国家的抗寒程度。

接下来  行每行两个正整数   表示有一条道路连接  和  两个国家。

输出描述:

输出一行一个正整数表示世界  年中每一年的混乱程度之和的期望值,答案对  取模。

保证答案可以表示为形如  的形式()的形式,而你需要输出  在模  意义下的值。

示例1

输入

复制
3 1
2
1 1 1
1 2
2 3

输出

复制
1
示例2

输入

复制
3 2
2 2
2 2 2
1 2
2 3

输出

复制
887328316
示例3

输入

复制
4 2
2 2
2 1 1 2
1 2
1 3
1 4

输出

复制
471393169