#include<bits/stdc++.h>
using namespace std;
long long n,m,x,y;
long long nn[401][401];
long long yd[10][3]={{1,-2},{1,2},{2,1},{2,-1},{-1,-2},{-1,2},{-2,1},{-2,-1}};
struct dian
{
long long a,b,s;
};
void bfs()
{
dian now,nex;
now.a=x,now.b=y,now.s=0;
queue<dian>dl;
dl.push(now);
for(long long i=1;;i++)
{
if(dl.empty())
{
break;
}
now=dl.front();
dl.pop();
nn[now.a][now.b]=now.s;
for(long long i=0;i<8;i++)
{
nex.a=now.a+yd[i][0];
nex.b=now.b+yd[i][1];
nex.s=now.s+1;
if(!(nex.a<1||nex.b<1||nex.a>n||nex.b>m||nn[nex.a][nex.b]!=-1))
{
dl.push(nex);
}
}
}
}
int main()
{
cin>>n>>m>>x>>y;
memset(nn,-1,sizeof(nn));
bfs();
for(long long i=1;i<=n;i++)
{
for(long long j=1;j<=m;j++)
{
printf("%-5d",nn[i][j]);
}
printf("\n");
}
return 0;
}