#D11466. Division into Two
Division into Two
Division into Two
There is a set consisting of N distinct integers. The i-th smallest element in this set is S_i. We want to divide this set into two sets, X and Y, such that:
- The absolute difference of any two distinct elements in X is A or greater.
- The absolute difference of any two distinct elements in Y is B or greater.
How many ways are there to perform such division, modulo 10^9 + 7? Note that one of X and Y may be empty.
Constraints
- All input values are integers.
- 1 ≦ N ≦ 10^5
- 1 ≦ A , B ≦ 10^{18}
- 0 ≦ S_i ≦ 10^{18}(1 ≦ i ≦ N)
- S_i < S_{i+1}(1 ≦ i ≦ N - 1)
Input
The input is given from Standard Input in the following format:
N A B S_1 : S_N
Output
Print the number of the different divisions under the conditions, modulo 10^9 + 7.
Examples
Input
5 3 7 1 3 6 9 12
Output
5
Input
7 5 3 0 2 4 7 8 11 15
Output
4
Input
8 2 9 3 4 5 13 15 22 26 32
Output
13
Input
3 3 4 5 6 7
Output
0
inputFormat
input values are integers.
- 1 ≦ N ≦ 10^5
- 1 ≦ A , B ≦ 10^{18}
- 0 ≦ S_i ≦ 10^{18}(1 ≦ i ≦ N)
- S_i < S_{i+1}(1 ≦ i ≦ N - 1)
Input
The input is given from Standard Input in the following format:
N A B S_1 : S_N
outputFormat
Output
Print the number of the different divisions under the conditions, modulo 10^9 + 7.
Examples
Input
5 3 7 1 3 6 9 12
Output
5
Input
7 5 3 0 2 4 7 8 11 15
Output
4
Input
8 2 9 3 4 5 13 15 22 26 32
Output
13
Input
3 3 4 5 6 7
Output
0
样例
5 3 7
1
3
6
9
12
5