import Foundation

func findNumberOfWays(numberOfRows: Int, numberOfColumns: Int, ignoringRows: Int, ignoringColumns: Int) -> Int {
    var records: [[Int]] = [[Int]](count: numberOfRows, repeatedValue: ([Int](count: numberOfColumns, repeatedValue: 0)))
    for row in 0..<numberOfRows {
      for column in 0..<numberOfColumns {
        if row >= (numberOfRows - ignoringRows)  && column < ignoringColumns {
          continue
        }
        
        if row == 0 || column == 0 {
          records[row][column] = 1
        } else {
          let top = records[row - 1][column]
          let left = records[row][column - 1]
          records[row][column] = top + left
        }
      }
    }
    return records[numberOfRows - 1][numberOfColumns - 1]
}

let source = readLine()!.componentsSeparatedByString(" ").map { Int($0)! }
print(findNumberOfWays(source[0], 
                       numberOfColumns: source[1],
                       ignoringRows: source[2],
                       ignoringColumns: source[3]))