def dfs(x, y, step):
if x < 0 or x >= n or y < 0 or y >= m or dist[x][y] != -1:
return
if(step<dist[x][y] and dist[x][y]!=-1):
dist[x][y]=step
else:
if(dist[x][y]==-1):
dist[x][y]=step
dfs(x+2, y+1, step+1)
dfs(x+2, y-1, step+1)
dfs(x-2, y+1, step+1)
dfs(x-2, y-1, step+1)
dfs(x+1, y+2, step+1)
dfs(x+1, y-2, step+1)
dfs(x-1, y+2, step+1)
dfs(x-1, y-2, step+1)
n, m, x, y = map(int, input().split())
dist = [[-1] * m for _ in range(n)]
dfs(x-1, y-1, 0)
for row in dist:
print(*row)