在国际象棋中,马的移动方式与中国象棋中的马类似,都是走“日”字。但国际象棋中的马没有“蹩腿”的限制,因此它可以向周围 8 个方向任意跳动(只要不超出棋盘边界)。具体来说,马每步可以从一个格子跳到与之水平距离为 1、垂直距离为 2,或者水平距离为 2、垂直距离为 1 的格子上。

现在给定一个 n 行 m 列的棋盘,以及马的起始位置 (x, y)。请你计算马从起始位置出发,到达棋盘上每一个格子所需的最少移动步数。如果某个格子无法到达,则输出 -1。
输入仅一行,包含四个整数 n, m, x, y ,用空格隔开:
输出 n 行,每行包含 m 个整数,依次表示从起点到该格子(第 i 行第 j 列)的最少步数。相邻整数之间用一个空格隔开。如果该格子无法到达,则输出 -1。
3 3 3 1
2 1 4 3 -1 1 0 3 2
棋盘为 3 \times 3 ,起点位于第 3 行第 1 列(即左下角)。马从起点出发,一步可以跳到 (1,2)、(2,3) 等位置,经过 BFS 计算得到各格子的最短步数如输出所示。注意 (2,2) 无法到达,因此输出 -1。