心跳调试
题号:NC217858
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Heartache Debug
给定正整数 ,正整数序列
你的心跳是一个栈,初始时栈中仅有一个元素
需要进行若干次如下的「调试」操作:

每个时刻,设栈顶元素为 ,对于 ,有  的概率将  入栈;且每个时刻恰好只会将一个 入栈。
当栈顶为  时立刻停止调试。

求最后  都在栈中出现至少一次的概率对  取模的结果。

输入描述:

第一行,一个正整数 
第二行, 个正整数

输出描述:

一行,一个非负整数,表示答案对  取模的结果。
您可能不知道如何对一个有理数取模。具体地,若您得到的答案为 ,那么您应当输出 ,其中  为  在模  意义下的逆元(数据保证存在)。
示例1

输入

复制
3
1 1 1

输出

复制
500000004
示例2

输入

复制
3
2 1 3

输出

复制
250000002

备注: