












# #1.饮料换购
# n = int(input())
# ans = n
# while n >= 3:
# n -= 3
# ans += 1
# n += 1 # 假设这里是想在循环结束后给n加1
# print(ans)
#
# n = int(input())
# ans = n # 初始化为0
# while n >= 3:
# ans += n // 3
# n = n // 3+n % 3
# print(ans)
#
# #2.图像模糊
#
# n, m = map(int, input().split())
# # 二维数组的读入
# Map = []
# for i in range(n):
# a = list(map(int, input().split()))
# Map.append(a)
#
# ans = [[0] * m for i in range(n)]
# dirs = [(0, 0), (0, 1), (1, 0), (0, -1), (-1, 0), (1, 1), (1, -1), (-1, 1), (-1, -1)]
#
# for i in range(n):
# for j in range(m):
# cnt, tot = 0, 0
# for dir in dirs:
# x = i + dir[0]
# y = j + dir[1]
# if 0 <= x < n and 0 <= y < m:
# cnt += 1
# tot += Map[x][y]
# if cnt > 0: # 避免除以0的错误
# ans[i][j] = tot // cnt
#
# for x in ans:
# print(' '.join(map(str, x))) # 使用空格作为分隔符
#
# n, m = map(int, input().split())
# Map = []
# for i in range(n):
# a = list(map(int, input().split()))
# Map.append(a)
#
# ans = [[0] * m for i in range(n)]
#
# for i in range(n):
# for j in range(m):
# tot, cnt = 0, 0
# # 遍历每个位置(i,j)求出模糊后的结果
# # (i-1,j-1)(i-1,j+0)(i-1,j+1)
# # (i+0,j-1)(i+0,j+0)(i+0,j+1)
# # (i+1,j-1)(i+1,j+0)(i+1,j+1)
# # 遍历周围的3*3区域
# for delta_x in [-1, 0, 1]:
# for delta_y in [-1, 0, 1]:
# x = i + delta_x
# y = j + delta_y
# # 判断坐标(x,y)是否存在
# if 0 <= x < n and 0 <= y < m:
# # 更新和、个数
# tot += Map[x][y]
# cnt += 1
# # 避免除以0
# if cnt > 0:
# ans[i][j] = tot // cnt
#
# for a in ans:
# print(" ".join(map(str, a)))
'''
在这段代码中,for delta_x in [-1, 0, 1]: 和 for delta_y in [-1, 0, 1]: 是两个嵌套的循环,用于遍历一个3x3的区域,其中中心点是当前考虑的位置 (i, j)。
delta_x 和 delta_y 分别表示在x轴和y轴上的偏移量。这些偏移量用于确定哪些相邻位置应该被考虑在内。
具体来说:
delta_x 可以是 -1, 0, 或 1,表示相对于当前位置 (i, j) 在x轴上的偏移。
delta_y 可以是 -1, 0, 或 1,表示相对于当前位置 (i, j) 在y轴上的偏移。
将这些偏移量加到当前位置 (i, j) 上,就可以得到相邻位置的坐标 (x, y)。
例如,如果当前位置是 (i, j),那么:
(i - 1, j - 1) 是左上角的相邻位置(当 delta_x = -1 且 delta_y = -1 时)。
(i - 1, j) 是左边的相邻位置(当 delta_x = -1 且 delta_y = 0 时)。
(i - 1, j + 1) 是左下角的相邻位置(当 delta_x = -1 且 delta_y = 1 时)。
以此类推,还包括正上方、正右方、正下方、正左方、右上角、右下角等位置。
通过这种方式,这两个嵌套的循环遍历了当前位置 (i, j) 的8个相邻位置(包括它自己)。然后,代码检查这些相邻位置是否在地图的边界内,如果是,则将它们的值加到 tot(总和)上,并增加 cnt(个数)的计数。最终,这些相邻位置的平均值被计算并存储在 ans[i][j] 中。
'''
#3.螺旋矩阵
n, m = map(int, input().split())
r, c = map(int, input().split())
l = int(input()) # 步长
ans = [[0] * m for i in range(n)]
# 当前坐标
x, y = 0,0
# 当前存放的值
value = 1
ans[x][y] = value
while value < n * m:
# 往右走
while y + l < m and ans[x][y + l] == 0:
value += 1
y += 1
ans[x][y] = value
# 往下走
while x + l < n and ans[x + l][y] == 0:
value += 1
x += 1
ans[x][y] = value
# 往左走
while y - l >= 0 and ans[x][y - l] == 0:
value += 1
y -= 1
ans[x][y] = value
# 往上走
while x - l >= 0 and ans[x - l][y] == 0:
value += 1
x -= 1
ans[x][y] = value
print(ans[r-1][c-1])