#dky1005. 球的乘积

球的乘积

时间限制:2 sec 空间限制:1024 MB

题目描述

我们有 NN 个袋子。

袋子 ii 包含 LiL_i 个球。第 jj 个球上写有一个正整数 ai,ja_{i,j}。

我们将从每个袋子中各取出一个球,然后计算所有球上写的数字的乘积。

有多少种不同的方式可以使得所取出球上的数字乘积等于 XX?

这里,我们区分所有球,即使它们上面写的数字相同。

约束条件

  • 1≤N≤201 \leq N \leq 20
  • 1≤Li≤1051 \leq L_i \leq 10^5
  • 你取完球之后,所有球的乘积不会超过 101810^{18} :
  • ∏i=1NLi≤106\prod_{i=1}^{N} L_i \leq 10^6

(人话:所有袋子的球的数量的乘积不会超过 10610^6 ,也就是取球的方式不会超过 10610^6 ,假如有三个袋子分别装有x/y/z个球,保证 x×y×z≤106 x\times y \times z \le 10^6 )

  • 1≤ai,j≤1091 \leq a_{i,j} \leq 10^9
  • 1≤X≤10181 \leq X \leq 10^{18}
  • 所有输入值均为整数

输入格式

输入按以下格式从标准输入给出:

NN   XX

L1L_1   a1,1a_{1,1}   a1,2a_{1,2}   ⋯\cdots   a1,L1a_{1,L_1}

L2L_2   a2,1a_{2,1}   a2,2a_{2,2}   ⋯\cdots   a2,L2a_{2,L_2}

⋮\vdots

LNL_N   aN,1a_{N,1}   aN,2a_{N,2}   ⋯\cdots   aN,LNa_{N,L_N}

输出格式

输出答案。

样例

样例1

2 40
3 1 8 4
2 10 5
2

当选择袋子1中的第3个球和袋子2中的第1个球时,我们有 a1,3a_{1,3} ×\times a2,1a_{2,1} == 44 ×\times 1010 == 4040。

当选择袋子1中的第2个球和袋子2中的第2个球时,我们有 a1,2a_{1,2} ×\times a2,2a_{2,2} == 88 ×\times 55 == 4040。

没有其他方式可以得到乘积 4040,所以答案是 22。

样例2

3 200
3 10 10 10
3 10 10 10
3 10 10 10
0

注意:我们区分所有球,即使它们上面写的数字相同。

样例3

3 1000000000000000000
2 1000000000 1000000000
2 1000000000 1000000000
2 1000000000 1000000000
0

可能没有方式可以得到乘积 XX。