def get_spiral_value(n, m, row, col):
    # 计算目标位置在第几圈
    layer = min(row, n - 1 - row, col, m - 1 - col)

    # 计算外层圈的总元素数
    outer_elements = 0
    for l in range(layer):
        if l == 0:
            outer_elements += 2 * (n + m) - 4
        else:
            outer_elements += 2 * (n - 2 * l + m - 2 * l) - 4

    # 计算当前圈中目标位置的偏移量
    current_n, current_m = n - 2 * layer, m - 2 * layer
    current_row, current_col = row - layer, col - layer

    # 计算在当前圈中的位置
    if current_row == 0:  # 上边
        position = current_col + 1
    elif current_col == current_m - 1:  # 右边
        position = current_m + current_row
    elif current_row == current_n - 1:  # 下边
        position = current_m + current_n - 1 + (current_m - 1 - current_col)
    else:  # 左边
        position = (
            current_m + current_n - 1 + (current_m - 1) + (current_n - 1 - current_row)
        )

    return outer_elements + position


n, m, a, b = map(int, input().split())
print(get_spiral_value(n, m, a - 1, b - 1))