#include<bits/stdc++.h>
using namespace std;
const int N=1e4;
int n[N][N],a,b,x,y;
void bfs(int a,int b){
if(n[a-1][b-2]&&a>=1&&b>=2){
if(n[a-1][b-2]==0){
n[a-1][b-2]=n[a][b]+1;
}
if(n[a-1][b-2]!=0){
n[a-1][b-2]=min(n[a-1][b-2],n[a][b]+1);
}
bfs(a-1,b-2);
}
if(n[a-2][b-1]&&a>=2&&b>=1){
if(n[a-2][b-1]==0){
n[a-2][b-1]=n[a][b]+1;
}
if(n[a-2][b-1]!=0){
n[a-2][b-1]=min(n[a-2][b-1],n[a][b]+1);
}
bfs(a-2,b-1);
}
if(n[a-2][b+1]&&a>=2&&b<y-1){
if(n[a-2][b+1]==0){
n[a-2][b+1]=n[a][b]+1;
}
if(n[a-2][b+1]!=0){
n[a-2][b+1]=min(n[a-2][b+1],n[a][b]+1);
}
bfs(a-2,b+1);
}
if(n[a-1][b+2]&&a>=1&&b<y-2){
if(n[a-1][b+2]==0){
n[a-1][b+2]=n[a][b]+1;
}
if(n[a-1][b+2]!=0){
n[a-1][b+2]=min(n[a-1][b+2],n[a][b]+1);
}
bfs(a-1,b+2);
}
if(n[a+1][b-2]&&a<x-1&&b>=2){
if(n[a+1][b-2]==0){
n[a+1][b-2]=n[a][b]+1;
}
if(n[a+1][b-2]!=0){
n[a+1][b-2]=min(n[a+1][b-2],n[a][b]+1);
}
bfs(a+1,b-2);
}
if(n[a+2][b-1]&&a<x-2&&b>=1){
if(n[a+2][b-1]==0){
n[a+2][b-1]=n[a][b]+1;
}
if(n[a+2][b-1]!=0){
n[a+2][b-1]=min(n[a+2][b-1],n[a][b]+1);
}
bfs(a+2,b-1);
}
if(n[a+2][b+1]&&a<x-2&&b<y-1){
if(n[a+2][b+1]==0){
n[a+2][b+1]=n[a][b]+1;
}
if(n[a+2][b+1]!=0){
n[a+2][b+1]=min(n[a+2][b+1],n[a][b]+1);
}
bfs(a+2,b+1);
}
if(n[a+1][b+2]&&a<x-1&&b<y-2){
if(n[a+1][b+2]==0){
n[a+1][b+2]=n[a][b]+1;
}
if(n[a+1][b+2]!=0){
n[a+1][b+2]=min(n[a+1][b+2],n[a][b]+1);
}
bfs(a+1,b+2);
}
return ;
}
int main(){
cin>>x>>y>>a>>b;
a--;
b--;
bfs(a,b);
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
if(n[i][j]==0){
printf("%-5d",-1);
}
else printf("%-5d",n[i][j]);
}
cout<<endl;
}
return 0;
}