C0644 [BJOI2015]糖果

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

题目描述

Alice 正在教她的弟弟 Bob 学数学。

每天,Alice 画一个 $N$ 行 $M$ 列的表格,要求 Bob 在格子里填数。

Bob已经学会了自然数 $1$ 到 $K$ 的写法。因此他在每个格子里填 $1$ ~ $K$ 之间的整数。

Alice 告诉 Bob,如果 Bob 填写完表格的 $N*M$ 个数以后,每行的数从第 $1$ 列到第 $M$ 列单调不减,并且任意两行至少有一列的数不同,而且以前 Bob 没有填写过相同的表格,那么 Alice 就给 Bob 吃一颗糖果。

Bob 想知道,如果每天填写一遍表格,最多能吃到多少颗糖果。

答案模 $P$ 输出。

输入格式

第一行,四个整数依次是 $N, M, K, P$。

输出

输出一行,一个整数,表示答案模 $P$ 后的结果。

样例

样例输入 1

1 3 3 10

样例输出 1

0

样例输入 2

2 2 2 10

样例输出 2

6

提示

【样例解释】

样例 1:表格只有一行。每个格子可以填写 1 ~ 3。有 10 种填写方法,依次为1 1 1,1 1 2,1 1 3,1 2 2,1 2 3,1 3 3,2 2 2,2 2 3,2 3 3,3 3 3。

样例 2:表格有两行。有 6 种填写方法,依次为  1 1/1 2, 1 1/2 2, 1 2/1 1, 1 2/22, 2 2/1 1, 2 2/1 2。

【数据规模与约定】

100% 的数据中,$1 ≤ N, M ≤ 10^5,1 ≤ P, K ≤ 2*10^9$。