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: inp = input().split(" ")
  H = int(inp[0])
  W = int(inp[1])
  A = int(inp[2])
  B = int(inp[3])
  mod = 10**9 + 7
  fact = [1]
  fact_r = [1]
  for i in range(1, H + W - 1):
      fact.append(i * fact[i - 1] % mod)
      fact_r.append(pow(fact[i], 10**9 + 5, mod))
  const = fact_r[H - A - 1] * fact_r[A - 1] % mod
  ans = sum(
      fact[H + i - A - 1] * fact_r[i] * fact_r[W - i - 1] * fact[W - i - 2 + A] % mod
      for i in range(B, W)
  )
  print(ans * const % mod)
  
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"}]