#4338. BJOI2015 糖果

内存限制:256 MiB 时间限制:2 Sec

题目描述

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
【样例输入2】
2 2 2 10

样例输出


			
【样例输出1】
0
【样例输出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/2 

2, 2 2/1 1, 2 2/1 2。 

 

【数据规模与约定】 

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