#1294. 社团活动

社团活动

题目描述:

校园社团活动安排问题在一所充满活力的校园里,学生会准备举办一系列社团活动。学校共有n个不同类型的社团,同时拥有m个可供活动使用的场地。为了便于管理,我们将社团从1到n进行编号,将活动场地从1到m进行编号。每个社团都计划在特定的场地举办不同场次的活动。具体来说,社团i(i<=i<=n))计划在场地j(1<=j<=m)举办ai,j场不同的活动,这也就意味着所有社团总共计划举办

场活动。为了确保活动的多样性和合理性,学生会对活动安排提出了以下要求: 活动不能空办,至少要举办一场活动,即活动总场次k>=1; 为了让同学们体验不同社团的特色,每场活动必须由不同的社团来举办; 考虑到场地的承载能力和使用频率,每个场地举办的活动场次不能超过总活动场次的一半,即每种场地至多在[k/2]场活动中被使用 ,这里的[x]为下取整函数,表示不超过x的最大整数。 学生会希望能够高效地规划活动,但面对复杂的要求和众多的活动组合,他们犯了难。现在,学生会找到了你,希望你帮忙计算一下,究竟有多少种不同的符合所有要求的活动安排方案。如果两种方案中存在至少一场活动,在一种方案中举办而在另一种方案中不举办,那么这两种方案就是不同的。由于方案数量可能非常庞大,你只需要告诉他们符合要求的方案数对质数998,244,353取模的结果即可。

输入格式:

第一行包含两个用单个空格隔开的整数n和m,分别表示社团数量和活动场地数量。 接下来n行,每行包含m个用单个空格隔开的整数。其中第i + 1行的m个数依次为ai,1, ai,2,..., ai,am,表示社团i在各个场地计划举办的活动场次。

输出格式:

输出一行,包含一个整数,表示满足所有要求的活动安排方案数对998,244,353取模后的结果。

样例:

5 2
1 1
1 0
1 1
1 1
1 1

34

提示

1≤n≤100,1≤m≤2000,0≤ai,j<998,244,353。