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: iH, iW, iA, iB = [int(x) for x in input().split()]
  iD = 10**9 + 7  # 法
  
  iLBoxW = iB - 1
  iLBoxH = iH - iA - 1
  iRBoxW = iW - iB - 1
  iRBoxH = iH - 1
  # iMax = iH+iW-2
  iMax = max(iLBoxW + iLBoxH, iRBoxW + iRBoxH)
  
  # nCr = n!/r!(n-r)!
  
  
  # 二分累乗法 iDを法として
  def fBiPow(iX, iN, iD):
      iY = 1
      while iN > 0:
          if iN % 2 == 0:
              iX = iX * iX % iD
              iN = iN // 2
          else:
              iY = iX * iY % iD
              iN = iN - 1
      return iY
  
  
  # 階乗(iDを法とした)の配列
  aM = [1] * (iMax + 1)
  for i in range(1, iMax + 1):
      aM[i] = aM[i - 1] * i % iD
  # 各階乗のiDを法とした逆元の配列
  aInvM = [1] * (iMax + 1)
  aInvM[iMax] = fBiPow(aM[iMax], iD - 2, iD)
  for i in range(iMax, 0, -1):
      aInvM[i - 1] = aInvM[i] * i % iD
  
  iRet = 0
  for iL in range(0, iLBoxH + 1):
      iRet += (
          (aM[iL + iLBoxW] * aInvM[iL] * aInvM[iLBoxW])
          % iD
          * (aM[iRBoxW + iRBoxH - iL] * aInvM[iRBoxW] * aInvM[iRBoxH - iL])
          % iD
      )
      iRet %= iD
  iRet %= iD
  print(iRet)
  
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"}]