pb 大师喜欢玩 2048。
pb 大师在一个 1×n 的网格上玩 2048,初始 n 个格子都是空的。
游戏会进行若干轮,每轮将发生如下事件:
如果没有空位,游戏结束。否则随机一个 1 到 m 的数,随机到 i 的概率是 pi,再等概率随机一个空位,在空位中填入 2i−1。
将所有数顺序不变移到最左侧。例如
_ _ x _ y z
会变成x y z _ _ _
。如果没有相邻相同的数,这一轮结束。否则从左往右最后一对相同的数变成他们的和以及一个空位,并且他的得分会加上产生的和,例如
x y y z _ _
会变成x 2y _ z _ _
,并且 pb 大师会得到 2y 分,接下来回到第二步。
pb 大师想要知道:他的期望总得分是多少。
输入格式
第一行两个整数 n,m 分别表示网格大小和随机数的值域。
第二行 m 个数,第 i 个数 ai 表示 pi=ai∑mj=1aj。
输出格式
输出一行一个整数表示期望得分对 998244353 取模后的结果,具体的,设答案的最简分数为 ab,你需要输出 x 满足 bx≡amod。
样例一
input
2 2 1 1
output
2
样例二
input
10 6 19 2 6 8 1 7
output
5623384
样例三
见附件下载。
数据范围
对于 20\% 的数据,1\leq n,m\leq 5。
对于 60\% 的数据,1\leq n,m\leq 300。
对于 100\% 的数据,1\leq n,m\leq 2000, 1\leq a_i\leq 100。
时间限制:2\texttt{s}
空间限制:512\texttt{MB}