#P15734. 阶梯抽卡

阶梯抽卡

题目描述

游戏策划奈央正在设计一套阶梯抽卡系统。游戏中有 00 星、11 星、\ldotsmm 星物品。一次单抽抽到 ii 星物品的概率为

aij=0maj.\frac{a_i}{\sum_{j=0}^m a_j}.

一次单抽称为 00 级抽取。对于 k1k\ge 1,一次 kk 级抽取由恰好 bkb_k(k1)(k-1) 级抽取组成。最高级别为 nn

一次 kk 级抽取是合法的,当且仅当它保证以下条件:

  • 至少抽到一个星级不低于 kk 的物品;
  • 它包含的所有 bkb_k(k1)(k-1) 级抽取中,每一次都至少抽到一个星级不低于 k1k-1 的物品;
  • 递归地,直到 00 级抽取;对于一次单抽而言,至少抽到一个星级不低于 00 的物品显然恒成立。

pip_i 表示在一次合法的 nn 级抽取中,抽到 ii 星物品数量的期望;令 qq 表示一次 nn 级抽取合法的概率。

你需要对所有 0im0\le i\le m,输出

(piq)mod998244353.(p_i\cdot q)\bmod 998244353.

这样可以避免直接处理巨大分数和除零问题。

输入格式

第一行包含两个整数 m,nm,n,分别表示最高星级和最高抽取级别。

第二行包含 m+1m+1 个整数

a0,a1,,am,a_0,a_1,\ldots,a_m,

表示抽到各星级物品的频数。

第三行包含 nn 个整数

b1,b2,,bn,b_1,b_2,\ldots,b_n,

表示 1,2,,n1,2,\ldots,n 级抽取分别包含多少次上一级抽取。

输出格式

输出 m+1m+1 行。第 ii 行输出一个整数,表示

(pi1q)mod998244353.(p_{i-1}\cdot q)\bmod 998244353.

数据范围

  • 1nm40001\le n\le m\le 4000
  • 1ai40001\le a_i\le 4000
  • 2bi40002\le b_i\le 4000

样例 1

输入

2 1
1 1 1
3

输出

554580197
1
1

解释

样例 1 的答案写成有理数形式分别为:

89, 1, 1.\frac89,\ 1,\ 1.

样例 2

输入

2 1
89 10 1
10

输出

989586456
1
299473306

样例 3

输入

3 2
1 1 2 1
2 3

输出

58137752
260406016
517809313
758026833