Qi the Chuan Shen (船神) has decided to build a tower using boats! Each boat i has a width Wi. In order to prevent the tower from toppling, Qi has calculated that a boat of width A can only be placed directly on top of a boat of width B if AB+Q, where Q is Qi's constant. Help Qi compute the number of different towers he can build using each of the N boats exactly once!

Note: Two towers are different if the order of boats from bottom to top is different.

Input

On the first line are space-separated integers N (1 ≤ N ≤ 100,000) and Q (1 ≤ Q ≤ 1,000,000,000). The next N lines contain an integer each, the ith of which is the value Wi (1 ≤ Wi ≤ 1,000,000,000).

Output

On the first and only line output the number of possible towers, modulo 1,000,000,007.

Sample Input 1

4 1
1
2
3
3

Sample Output 1

12