output_description: Print the number of ways she can travel to the bottom-right cell, modulo
  10^9+7.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      H W A B
attempt: # -*- coding: utf-8 -*-
  
  # See:
  # http://drken1215.hatenablog.com/entry/2018/06/08/210000
  max_value = 500050
  mod = 10**9 + 7
  
  fac = [0 for _ in range(max_value)]
  finv = [0 for _ in range(max_value)]
  inv = [0 for _ in range(max_value)]
  
  
  def com_init():
      fac[0] = 1
      fac[1] = 1
      finv[0] = 1
      finv[1] = 1
      inv[1] = 1
  
      for i in range(2, max_value):
          fac[i] = fac[i - 1] * i % mod
          inv[i] = mod - inv[mod % i] * (mod // i) % mod
          finv[i] = finv[i - 1] * inv[i] % mod
  
  
  def com(n, k):
      if n < k:
          return 0
      if n < 0 or k < 0:
          return 0
      return fac[n] * (finv[k] * finv[n - k] % mod) % mod
  
  
  def main():
      h, w, a, b = map(int, input().split())
      x = h - (a + 1)
      com_init()
      prev = 0
      ans = 0
      com_xy = [0 for _ in range(w - b)]
      com_za = [0 for _ in range(w - b)]
      i = 0
      j = 0
  
      for y in range(b, w):
          com_xy[i] = com(x + y, y)
          i += 1
  
      for z in range((w - (b + 1) + a), a - 1, -1):
          com_za[j] = com(z, z - a)
          j += 1
  
      for xy, za in zip(com_xy, com_za):
          ans += (xy - prev) * za
          ans %= mod
          prev = xy
  
      print(ans)
  
  
  if __name__ == "__main__":
      main()
  
problem_description: Statement
  
  We have a large square grid with H rows and W columns. Iroha is now standing
  in the top-left cell. She will repeat going right or down to the adjacent
  cell, until she reaches the bottom-right cell.
  
  However, she cannot enter the cells in the intersection of the bottom A rows
  and the leftmost B columns. (That is, there are A×B forbidden cells.) There is
  no restriction on entering the other cells.
  
  Find the number of ways she can travel to the bottom-right cell.
  
  Since this number can be extremely large, print the number modulo 10^9+7.
samples: [{"input": "2 3 1 1", "output": "2\n    \n\nWe have a 2\u00d73 grid, but entering the bottom-left cell is forbidden. The number\nof ways to travel is two: \"Right, Right, Down\" and \"Right, Down, Right\".\n\n* * *"}, {"input": "10 7 3 4", "output": "3570\n    \n\nThere are 12 forbidden cells.\n\n* * *"}, {"input": "100000 100000 99999 99999", "output": "1\n    \n\n* * *"}, {"input": "100000 100000 44444 55555", "output": "738162020"}]