RT
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 410;
int n, m;
int ans[N][N];
bool book[N][N];
int dx[8] = {2, 1, 1, 2, -1, -1, -2, -2};
int dy[8] = {1, -2, 2, -1, 2, -2, 1, -1};
void bfs(int x, int y, int d) {
if(x < 1 || y < 1 || x > n || y > m || (ans[x][y] != -1 && ans[x][y] <= d)) return;
// q.push({x, y});
book[x][y] = 1;
if(ans[x][y] != -1)ans[x][y] = min(ans[x][y], d);
else ans[x][y] = d;
for(int i = 0 ; i < 8 ; i ++) {
bfs(x + dx[i], y + dy[i], d + 1);
}
return;
}
void print() {
for(int i = 1; i <= n ; i ++) {
for(int j = 1; j <= m ; j ++) {
printf("%-5d", ans[i][j]);
}
printf("\n");
}
}
int main () {
int a, b;
scanf("%d%d%d%d", &n, &m, &a, &b);
for(int i = 1; i <= n ; i ++) {
for(int j = 1; j <= m ; j ++) {
ans[i][j] = -1;
}
}
bfs(a, b, 0);
print();
return 0;
}