#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
const int dx[10] = {0,1, 2, 2, 1, -1, -2, -2, -1};
const int dy[10] = {0,2, 1, -1, -2, -2, -1, 1, 2};
queue<pair<int,int> >q;
int n,m,x,y,a[501][501];
int main()
{
cin>>n>>m>>x>>y;
q.push(make_pair(x,y));
memset(a,-1,sizeof a);
a[x][y]=0;
while(!q.empty())
{
int u=q.front().first,v=q.front().second;q.pop();
for(int i=1;i<=8;i++)
{
int tx = u + dx[i], ty = v + dy[i];
if((tx<1)||(tx>n)||(ty<1)||(ty>m))continue;
if(a[tx][ty]==-1){a[tx][ty]=a[u][v]+1;
q.push(make_pair(tx,ty));}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
printf("%-5d",a[i][j]);
}
cout<<endl;
}
return 0;
}```