P0585

[HNOI2008]Cards

[HNOI2008]Cards

小春现在很清闲,面对书桌上的 nn 张牌,他决定给每张牌染色。目前小春只有三种颜色:红色、蓝色、绿色。

他询问 Sun 有多少种染色方案,Sun 很快就给出了答案。进一步,小春要求染出 SrS_r 张红色、SbS_b 张蓝色、SgS_g 张绿色,他又询问有多少种方案,Sun 想了一下,又给出了正确答案。

最后小春发明了 mm 种不同的洗牌法,这里他又问 Sun 有多少种不同的染色方案。两种染色方法相同当且仅当其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次)洗成另一种。

Sun 发现这个问题有点难度,决定交给你。答案可能很大,只要求出答案除以 pp 的余数(pp 为质数)。

输入格式

第一行输入 55 个整数 Sr,Sb,Sg,m,pS_r, S_b, S_g, m, p,其中 n=Sr+Sb+Sgn = S_r + S_b + S_g。

接下来 mm 行,每行描述一种洗牌法:每行有 nn 个用空格隔开的整数 X1,X2,…,XnX_1, X_2, \dots, X_n,恰为 11 到 nn 的一个排列,表示使用这种洗牌法后,第 ii 位变为原来的第 XiX_i 位的牌。

输入数据保证任意多次洗牌都可用这 mm 种洗牌法中的一种代替,且对每种洗牌法,都存在一种洗牌法使得能回到原状态。

输出格式

输出一行一个整数,表示不同染法的数目除以 pp 的余数。

样例输入

1 1 1 2 7
2 3 1
3 1 2

样例输出

2

样例解释

共有 22 种本质上不同的染色法:RGB\text{RGB} 和 RBG\text{RBG}。

使用洗牌法 231231 一次,可由它们分别得到 GBR\text{GBR} 和 BGR\text{BGR};使用洗牌法 312312 一次,可分别得到 BRG\text{BRG} 和 GRB\text{GRB}。

数据范围

对于 100%100\% 的数据:

  • m≤60m\le 60,m+1<p<100m+1 < p < 100,且 pp 为质数;
  • max⁡{Sr,Sb,Sg}≤20\max\{S_r, S_b, S_g\}\le 20。

来源与许可

本题为 HNOI 2008 试题「Cards」,题面与测试数据整理自 BZOJ 1004。

样例 1

输入

1 1 1 2 7
2 3 1
3 1 2

输出

2