#include<iostream>
#include<queue>
#include<cstring>
#include<cstdio>
#define maxn 420
using namespace std;
int py[8][2]={{-1,-2},{1,2},{-2,-1},{2,1},{-1,2},{2,-1},{-2,1},{1,-2}};
struct cood{
int x,y;
};
int n,m,ux,uy;
int d=1;
int a[maxn][maxn];
queue<cood> Q;
int main(){
memset(a,-1,sizeof(a));
cin>>n>>m>>ux>>uy;
a[ux][uy]=0;
cood u={ux,uy};
Q.push(u);
while(!Q.empty()){
cood u=Q.front();
int sx=u.x,sy=u.y;
Q.pop();
for(int i=0;i<8;i++){
int dx=sx+py[i][0],dy=sy+py[i][1];
if(dx<1||dx>m||dy<1||dy>m||a[dx][dy]!=-1)continue;
a[dx][dy]=a[sx][sy]+d;
cood f={dx,dy};
Q.push(f);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
printf("%-5d",a[i][j]);
}
puts("");
}
return 0;
}