#P2048. 憧憬成为魔女

憧憬成为魔女

Problem Description

本题的评测时间较长,若发现有恶意利用此题堵塞评测队列的,我们会采取包括但不限于禁赛等措施

图片Base64

视传奇旅人伊雷娜小姐为偶像的碳钾钨因憧憬成为魔女而报考了重庆魔法大学的法阵工程专业!但是一入学碳钾钨就遇到了难题,于是他打算向你求助。

结构化法术设计的老师给碳钾钨布置了一个任务:试计算有多少种不同的长度为nn的咒语序列合法。一个长度为nn的魔法咒语序列可以用一个长度为nn的数组bb表示。为判定要给序列是否合法,老师给定了nn个互不相同的魔法关键值和两个整数k,mk,m,第ii个魔法关键值用aia_i表示。对于一个魔法序列bb,若同时满足以下两个条件则合法:

  1. 对任意i,j(1<=i,j<=n)i,j(1<=i,j<=n),若ai=⌊ajk⌋a_i= \lfloor \frac{a_j}{k}\rfloor 成立,则有bi>bjb_i > b_j.
  2. 对于任意ii,都有0<bi<=m0<b_i<=m

因为答案可能很大,老师只要求输出合法的咒语序列数量,且答案对109+710^9+7取模。

求求你帮碳钾钨解决这个问题,等碳钾钨成为魔女后,会把这段往事写到日记中的。

形式化的说:现给定三个整数n,k,mn,k,m和长度为nn的互不相同的数组aa

求有多少个不同的长度为n的非负整数数组bb满足以下两个条件

  1. 对任意i,j(1<=i,j<=n)i,j(1<=i,j<=n),若ai=⌊ajk⌋a_i= \lfloor \frac{a_j}{k}\rfloor 成立,则有bi>bjb_i > b_j.
  2. 对于任意ii,都有bi<=mb_i<=m

求满足条件的数组bb的个数,答案对109+710^9+7取模

Input Format

第一行三个整数n,m,kn,m,k。

第二行nn个整数,其中第ii个整数表示aia_i

Output Format

一个整数,表示合法的数组bb的个数,答案对109+710^9+7取模

Sample

输入

3 3 2
1 2 3

输出

5

Hint

其中$n\leq2*10^3,m\leq10^8,1 \leq k \leq10,0\leq a_i\leq10^{12}$

样例中合法的长度为3的魔法序列有以下五种:

2 1 1
3 1 1
3 1 2
3 2 1
3 2 2