#7. 跳跃

跳跃

【问题描述】

qq 在玩一个手机游戏。游戏平面是一个 H×WH\times W 的矩阵,每个格子上有一定高度的石柱。qq 可以从任意一个格子开始,但他只能向相邻 44 个格子跳跃并且有一个跳跃限制 dd。设当前所在格子的石柱高度为 hi,jh_{i,j},那么他可以跳跃到的石柱高度范围应该在 [hi,jd,hi,j+d][h_{i,j} - d, h_{i,j} + d]。每个格子都可以被重复跳到。qq 还有一个技能是闪现:他可以从任意一个格子瞬移到任意另外一个格子。

qq 想知道,如果他想把每个格子都至少经过一次,需要闪现的最少次数(最开始也算一次闪现)。

【输入格式】

输入第一行为三个整数 H,W,dH,W,d,如题意描述。

接下来 HH 行,每行 WW 个整数 hi,jh_{i,j} 表示第 ii 行第 jj 列格子上石柱的高度。

【输出格式】

输出一行,表示瞬移最少次数。

【样例输入】

3 4 1
2 0 0 0
0 0 2 2
0 0 2 2

【样例输出】

3

【数据范围与约定】

对于前 30%30\% 的数据,H,W10,d10H, W\le 10, d\le 10

对于前 60%60\% 的数据,H,W300,d50H, W\le 300, d\le 50

对于 100%100\% 的数据,$1\le H, W\le 500, 0\le d\le 256,0\le h_{i,j}\le 256$。