output_description: Print the number of the different divisions under the conditions, modulo 10^9
  + 7.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N A B
      S_1
      :
      S_N
attempt: from bisect import bisect_left
  
  N, A, B = map(int, input().split())
  inf, mod = float("inf"), 10**9 + 7
  S = [int(input()) for i in range(N)]
  St_A = [0] * N
  St_B = [0] * N
  J_A, J_B = [0], [0]
  for i in range(N):
      St_A[i] = bisect_left(S, S[i] + A) - 1
      St_B[i] = bisect_left(S, S[i] + B) - 1
      J_A.append(J_A[-1] + int(St_A[i] != i))
      J_B.append(J_B[-1] + int(St_B[i] != i))
  
  # print(St_A,St_B)
  # print(J_A,J_B)
  
  dp_A = [0] * N
  dp_B = [0] * N
  dp_A[-1], dp_B[-1] = 1, 1
  for i in range(N - 1)[::-1]:
      if St_A[i] == i:
          dp_A[i] = (dp_A[i + 1] + dp_B[i + 1]) % mod
      else:
          if J_B[St_A[i]] - J_B[i + 1] == 0:
              dp_A[i] = dp_B[St_A[i]]
          else:
              dp_A[i] = 0
      if St_B[i] == i:
          dp_B[i] = (dp_A[i + 1] + dp_B[i + 1]) % mod
      else:
          if J_A[St_B[i]] - J_A[i + 1] == 0:
              dp_B[i] = dp_A[St_B[i]]
          else:
              dp_B[i] = 0
  # print(dp_A)
  # print(dp_B)
  print((dp_A[0] + dp_B[0]) % mod)
  
problem_description: Statement
  
  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.
samples: [{"input": "5 3 7\n    1\n    3\n    6\n    9\n    12", "output": "5\n    \n\nThere are five ways to perform division:\n\n  * X={1,6,9,12}, Y={3}\n  * X={1,6,9}, Y={3,12}\n  * X={3,6,9,12}, Y={1}\n  * X={3,6,9}, Y={1,12}\n  * X={3,6,12}, Y={1,9}\n\n* * *"}, {"input": "7 5 3\n    0\n    2\n    4\n    7\n    8\n    11\n    15", "output": "4\n    \n\n* * *"}, {"input": "8 2 9\n    3\n    4\n    5\n    13\n    15\n    22\n    26\n    32", "output": "13\n    \n\n* * *"}, {"input": "3 3 4\n    5\n    6\n    7", "output": "0"}]