#include<bits/stdc++.h>
using namespace std;
queue<int>q1;queue<int>q2;
const int N=401;
int n,m,dt[N][N];
int xx[8]={1,2,2,1,-1,-2,-2,-1};
int yy[8]={2,1,-1,-2,-2,-1,1,2};
int bfs(){
while(q1.size()){
int x=q1.front(),y=q2.front();
q1.pop(),q2.pop();
for(int i=0;i<8;i++){
int bs=dt[x][y];
if(x+xx[i]>=1&&x+xx[i]<=n&&y+yy[i]>=1&&y+yy[i]<=m&&dt[x+xx[i]][y+yy[i]]==-1){
q1.push(x+xx[i]),q2.push(y+yy[i]);dt[x+xx[i]][y+yy[i]]=bs+1;
}
}
}
}
int main(){
memset(dt,-1,sizeof dt);
int x1,y11;
cin>>n>>m;
cin>>x1>>y11;
q1.push(x1);q2.push(y11);dt[x1][y11]=0;
bfs();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<dt[i][j]<<" ";
}
cout<<endl;
}
}