#include <bits/stdc++.h>
using namespace std;
int n,m,x,y,i=0,j=1,k1,k2;
int a[410][410]={},o1[9]={0,-2,-2,-1,1,2,2,1,-1},o2[9]={0,-1,1,2,2,1,-1,-2,-2};
bool b[410][410]={};
int d[1010][4]={},zb[410][410]={};
int main()
{
cin>>n>>m>>y>>x;//n行,m列;
k1=x;k2=y;
d[1][1]=x;d[1][2]=y;d[1][3]=0;//队列有x,y,步数;
b[y][x]=1;
zb[y][x]=0;
while(i<j)
{
++i;//指向
for(int o=1;o<=8;++o)//8个方向
{
k1=d[i][1]+o1[o];//x
k2=d[i][2]+o2[o];//y
int bu=d[i][3]+1;
if(k1>=1&&k1<=m&&k2>=1&&k2<=n&&b[k2][k1]==0)
{
++j;
b[k2][k1]=1;
d[j][1]=k1;
d[j][2]=k2;
d[j][3]=bu;
zb[k2][k1]=bu;
}
}
}
for(int t1=1;t1<=n;++t1)
{
for(int i1=1;i1<=m;++i1)
{
if(b[t1][i1]==0) printf("%-5d",-1);
else printf("%-5d",zb[t1][i1]);
}
if(t1!=n) cout<<"\n";
}
return 0;
}