#ATagc039f. [AGC039F] Min Product Sum

[AGC039F] Min Product Sum

题目描述

对于一个 NNMM 列的网格,每个格子都可以填写一个 11KK 之间的整数。对于所有 KNMK^{NM} 种填写方式,计算以下值,并将这些值的总和对 DD 取模:

  • 对于每个格子,找到与它在同一行或同一列(包括它自身)的所有格子中所填写的整数的最小值。将所有 NMNM 个格子的最小值相乘,得到一个值。

请输出所有填写方式下上述值的总和对 DD 取模的结果。

输入格式

输入为一行,包含四个整数:

NN MM KK DD

输出格式

输出所有 KNMK^{NM} 种填写方式下上述值的总和对 DD 取模的结果。

样例 1

输入

2 2 2 998244353

输出

35

样例 2

输入

2 3 4 998244353

输出

127090

样例 3

输入

31 41 59 998244353

输出

827794103

说明/提示

限制条件

  • 1N,M,K1001 \leq N, M, K \leq 100
  • 108D10910^8 \leq D \leq 10^9
  • N,M,K,DN, M, K, D 均为整数
  • DD 是质数

样例解释 1

使 NMNM 个格子的积为 1616 的填写方式有 11 种,积为 22 的填写方式有 44 种,积为 11 的填写方式有 1111 种。

由 ChatGPT 4.1 翻译