编程题
方程
### 题目描述
给定方程
$$X_1+X_2+. +X_n=M$$
我们对第 $l \cdots N_1$个变量进行一些限制:
$X_{1} \le A_{1}$
$X_{2} \le A_{2}$
$...$
$X_{n1} \le A_{n1}$
我们对第 $n_1 + 1 \cdots n_1+n_2$个变量进行一些限制:
$X_{n1+l} \ge A_{n1+1}$
$X_{n1+2} \ge A_{n1+2}$
$...$
$X_{n1+n2} \ge A_{n1+n2}$
求:在满足这些限制的前提下,该方程正整数解的个数。答案可能很大,请输出对 $p$ 取模后的答案,也即答案除以 $p$ 的余数。
### 输入描述
输入含有多组数据。
第一行两个正整数 $T,p$ 。$T$ 表示这个测试点内的数据组数,$p$ 的含义见题目描述。
对于每组数据,第一行四个非负整数 $n,n_1,n_2,m$。
第二行 $n_l+n_2$个正整数,表示 $A_{1 \cdots n1+n2}$。请注意,如果 $n_1+n_2$ 等于 $0$,那么这一行会成为一个空行。
其中,$n \leq 10^9 , n_1 \leq 8 , n_2 \leq 8 , m \leq 10^9 ,p \leq 437367875,T \leq 5,1 \leq A_{1 \cdots n1+n2} \leq m,n_1+n_2 \leq n$。
### 输出描述
输出共 $T$ 行,每行一个正整数表示取模后的答案。
### 输入输出样例
#### 示例 1
>输入
```txt
3 10007
3 1 1 6
3 3
3 0 0 5
3 1 1 3
3 3
```
>输出
```txt
3
6
0
```