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: h, w, a, b = map(int, input().split())
  mod = 10**9 + 7
  
  nfact_l = [1 for i in range(h + w + 1)]
  
  
  def nfact_mod(n0, mod0):
      for i in range(1, len(nfact_l)):
          nfact_l[i] *= (nfact_l[i - 1] * i) % mod
  
  
  nfact_mod(h + w + 1, mod)
  
  
  # 二分累乗法 あとで使う
  def powfunc_mod(n0, r0, mod0):
      ans0 = 1
      r0 = bin(r0)[:1:-1]
      for i in r0:
          if i == "1":
              ans0 *= n0 % mod0
          n0 *= n0 % mod0
          ans0 %= mod0
      return ans0
  
  
  nfact_inv_l = [1 for i in range(h + w + 1)]
  for i in range(len(nfact_inv_l)):
      nfact_inv_l[i] = powfunc_mod(nfact_l[i], mod - 2, mod)
  
  point1 = [0 for i in range(w - b)]
  for i in range(len(point1)):
      #  ... = n!*r!^(p-2)*(n-r)!^(p-2) [mod]
      yoko = b + i
      tate = h - a - 1
      n = yoko + tate
      r = tate
      point1[i] = (nfact_l[n] * nfact_inv_l[r] * nfact_inv_l[n - r]) % mod
  
  # point1から目的まで行く経路数
  out = 0
  for i in range(len(point1)):
      yoko = w - b - 1 + i
      tate = a - 1
      n = yoko + tate
      r = tate
      out += (
          (((point1[i] * nfact_l[n]) % mod) * nfact_inv_l[r] % mod) * nfact_inv_l[n - r]
      ) % mod
  
  print(out)
  
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"}]