There are \(n\) stone piles. Initially, the \(i\)-th pile contains \(a_i\) stones.
Consider a set of ranges \([L_i, R_i]\). For each range, you put one stone into every pile in that range.
A range set is called nice if it satisfies two conditions:
- after you put all stones according to the ranges, each pile will contain \(K\) stones,
- there are no nested ranges (i.e. no \(i\), \(j\) such that \(L_i \le L_j \le R_j \le R_i\)).
How many different nice sets are there? Two sets are considered different if one of them contains a range that is not present in another one.
Input
The first line contains two integers \(N\) and \(K\) denoting the number of piles and the desired number of stones in each pile. The second line contains \(N\) integers \(a_i\) which are the initial pile sizes.
- \(1 \le N \le 10^5\)
- \(1 \le K \le 10^9\)
- \(1 \le a_i \le 10^9\)
Output
Print the number of nice sets modulo \(10^9+7\).
Example
Input 1:
6 3
2 1 2 3 2 2
Output 1:
2
Explanation
Input 1: Nice sets in the sample are \(([1, 2], [2, 3], [5, 6])\) and \(([1, 2], [2, 3], [5, 5], [6, 6])\).