#include<bits/stdc++.h>
using namespace std;
int l[413][413];
int a,b;
void dfs(int x,int y,int z){
l[x][y]=z;
if(x-2>0&&y-1>0){
if(l[x-2][y-1]<z+1){
dfs(x-2,y-1,z+1);
}
}
if(x-2>0&&y+1<=b){
if(l[x-2][y+1]<z+1){
dfs(x-2,y+1,z+1);
}
}
if(x-1>0&&y-2>0){
if(l[x-1][y-2]<z+1){
dfs(x-1,y-2,z+1);
}
}
if(x-1>0&&y+2<=b){
if(l[x-1][y+2]<z+1){
dfs(x-1,y+2,z+1);
}
}
if(x+1<=a&&y-2>0){
if(l[x+1][y-2]<z+1){
dfs(x+1,y-2,z+1);
}
}
if(x+1<=a&&y+2<=b){
if(l[x+1][y+2]<z+1){
dfs(x+1,y+2,z+1);
}
}
if(x+2<=a&&y-1>0){
if(l[x+2][y-1]<z+1){
dfs(x+2,y-1,z+1);
}
}
if(x+2<=a&&y+1<=b){
if(l[x+2][y+1]<z+1){
dfs(x+2,y+1,z+1);
}
}
return;
}
int main(){
int c,d;
cin>>a>>b>>c>>d;
memset(l,0x3f,sizeof(l));
dfs(c,d,0);
for(int i=1;i<=a;i++){
for(int j=1;j<=b;j++){
if(l[i][j]=0x3f3f3f3f)cout<<left<<setw(5);
else cout<<left<<setw(5)<<l[i][j];
}
cout<<endl;
}
return 0;
}