C0938 [SDOI2013]方程

内存限制:256 MB 时间限制:1000 ms

题目描述

给定方程 $X_1+X_2+...+X_n=M$

我们对第 $1...N_1$ 个变量进行一些限制:

$X_1 \le A_1$

$X_2 \le A_2$

$X_{n_1} \le A_{n_1}$

我们对第 $n_{1 + 1}...n_{1+n_2}$个变量进行一些限制:

$X_{n_1+1} \ge A_{n_1+1}$

$X_{n_1+2} \ge A_{n_1+2}$

$X_{n_1+n_2} \ge A_{n_1+n_2}$

求:在满足这些限制的前提下,该方程正整数解的个数。

答案可能很大,请输出对 $p$ 取模后的答案,也即答案除以 $p$ 的余数。

输入格式

输入含有多组数据,第一行两个正整数 $T$,$p$。$T$ 表示这个测试点内的数据组数,$p$ 的含义见题目描述。

对于每组数据,第一行四个非负整数 $n$,$n_1$,$n_2$,$m$。

第二行 $n_1+n_2$ 个正整数,表示 $A_1...n_1+n_2$。请注意,如果 $n_1+n_2$ 等于 $0$,那么这一行会成为一个空行。

输出

共 $T$ 行,每行一个正整数表示取模后的答案。

样例

样例输入 1

3 10007 3 1 1 6 3 3 3 0 0 5 3 1 1 3 3 3

样例输出 1

3 6 0

提示

$n \le 10^9$,$n_1 \le 8$,$n_2 \le 8$,$m \le 10^9$,$p \le 437367875$。

对于 $100\%$ 的测试数据:$T \le 5$,$1 \le A_1...n_1+n_2 \le m$,$n_1+n_2 \le n$。