#include <iostream>
using namespace std;
struct node{
int x,y,step;
}map[10001];
int book[401][401];
int n=0,m=0,sx=0,sy=0,tx,ty;
int head=1,tail=1;
int nt[8][2]={{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1}};
void bfs(){
map[tail].x=sx;
map[tail].y=sy;
tail++;
book[map[head].x][map[head].y]=0;
while(head<tail){
for(int i=0;i<8;i++){
tx=map[head].x+nt[i][0];
ty=map[head].y+nt[i][1];
if(tx<1||tx>n||ty<1||ty>m)continue;
if(book[tx][ty]==-1){
map[tail].x=tx;
map[tail].y=ty;
map[tail].step=map[head].step+1;
book[tx][ty]=map[tail].step;
tail++;
}
}
head++;
}
}
int main(){
cin>>n>>m;
cin>>sx>>sy;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
book[i][j]=-1;
}
}
bfs();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<book[i][j]<<' ';
}
cout<<endl;
}
return 0;
}