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))