#3089. Rocket

Rocket

Background

SABRINA\mathbb{S}\mathbb{A}\mathbb{B}\mathbb{R}\mathbb{I}\mathbb{N}\mathbb{A} 的团队要组装火箭。

Description

SABRINA\mathbb{S}\mathbb{A}\mathbb{B}\mathbb{R}\mathbb{I}\mathbb{N}\mathbb{A} 手下有 NN 个工人,每个工人都可以加工若干个零件,总共要加工 KK 个零件,这 KK 个零件可以由多个工人来加工。料事如神的 SABRINA\mathbb{S}\mathbb{A}\mathbb{B}\mathbb{R}\mathbb{I}\mathbb{N}\mathbb{A} 预测第 ii 个工人在加工一个零件的时候会 aia_i 个 地方加工不到位。

因为 SABRINA\mathbb{S}\mathbb{A}\mathbb{B}\mathbb{R}\mathbb{I}\mathbb{N}\mathbb{A} 很懒,所以她希望知道有多少种方案能使得这 KK 个零件加工不到位的地方的数量不超过 QQ 个。

两个方案不同当且仅当某个工人加工的零件数不同。

Format

Input

第一行包含四个整数 N,K,Q,PN,K,Q,P

接下来一行 NN 个整数 aia_i

Output

一行一个整数,表示方案数对 PP 取模后的答案。

样例 #1

样例输入 #1

3 5 6 11
1 2 1

样例输出 #1

0

Limitation

对于 100 % 的数据:

1N,K5001 \le N,K \le 500

0Q5000 \le Q \le 500

1P109+71 \le P \le 10^9+7

0ai5000 \le a_i \le 500