方奶奶
有一天去市场买菜。
市场中的 $n$ 名小商贩们排成一行,位置为 $i$ 的人面前有价格为 $1 \leq a_i \leq m$ 的蔬菜。
方奶奶
按 $i$ 递增的顺序遍历所有的蔬菜,同时选择其中一些蔬菜购买。
除第一次购买外,方奶奶
每次购买时一定会选择比上一次购买的蔬菜价格更高的蔬菜购买,并且她总能购买到总数最多的蔬菜。
作为城管,你可以让一些小商贩改变蔬菜的售价,但是必须保证修改后的售价依然为区间 $[1, m]$ 以内的整数。
但是由于有的小商贩后台足够硬,你不能勒令每个人都改变售价。
现在,你想要知道对于每个整数 $k \in [1, m]$,你有多少种修改售价的方法(完全不修改也视为一种方案)让 方奶奶
最终购买到的蔬菜数等于 $k$,答案对 $998244353$ (一个质数)取模。
第一行包含一个正整数 $T$,表示有 $T$ 组测试数据。
接下来依次给出每组测试数据。对于每组测试数据:
第一行包含两个正整数 $n$ 和 $m$,分别表示市场的小商贩。
接下来输入的 $n$ 行中,第 $i$ 行有两个整数 $a_i$ 和 $b_i$,其中
$a_i$ 表示第 $i$ 名小商贩原本的售价。
$b_i$ 是 $1$ 或者 $0$,若 $b_i$ 为 $1$,则代表第 $i$ 名小商贩的售价可以被修改,否则不可以。
保证 $1 \leq n \leq 2000,$ $1 \leq m \leq 10$。
保证所有的 $a_i$ 满足 $1 \leq a_i \leq m$。
保证 $1 \leq T \leq 30$,并且不超过 $6$ 组数据不满足 $1 \leq n \leq 10, 1 \leq m \leq 5$。
对于每组数据,输出 $m$ 行,第 $k$ 行包含一个整数,表示使得 方奶奶
最终购买的蔬菜数量等于 $k$ 的售价修改方案数对 $998244353$ 取模后的结果。
1
3 3
1 1
2 0
3 1
4
4
1
样例中第一名和第三名小商贩的价格可以修改,因此一共有 $9$ 种不同的价格情况:
$1, 2, 1$,方奶奶
会购买 $2$ 个蔬菜
$1, 2, 2$,方奶奶
会购买 $2$ 个蔬菜
$1, 2, 3$,方奶奶
会购买 $3$ 个蔬菜
$2, 2, 1$,方奶奶
会购买 $1$ 个蔬菜
$2, 2, 2$,方奶奶
会购买 $1$ 个蔬菜
$2, 2, 3$,方奶奶
会购买 $2$ 个蔬菜
$3, 2, 1$,方奶奶
会购买 $1$ 个蔬菜
$3, 2, 2$,方奶奶
会购买 $1$ 个蔬菜
$3, 2, 3$,方奶奶
会购买 $2$ 个蔬菜
因此应该输出 $4, 4, 1$。