#include <iostream>
using namespace std;
int a[19198][19198] = {},n,m,x,y,xx[9] = {0,1,1,-1,-1,2,2,-2,-2},yy[9] = {0,2,-2,2,-2,1,-1,1,-1};
bool vis[19198][19198] = {};
void bfs(int x,int y,int st)
{
if(vis[x][y])
{
if(a[x][y] > st)
{
a[x][y] = st;
}
else
{
return ;
}
}
a[x][y] = st;
vis[x][y] = true;
for(int i = 1;i <= 8;i++)
{
if(x + xx[i] > 0 && x + xx[i] <= n && y + yy[i] > 0 && y + yy[i] <= m)
{
bfs(x + xx[i],y + yy[i],st + 1);
}
}
return ;
}
int main()
{
cin >> n >> m >> x >> y;
bfs(x,y,0);
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= m;j++)
{
if(i != x && j != y && a[i][j] == 0)
{
a[i][j] = -1;
}
}
}
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= m;j++)
{
cout << a[i][j] << ' ';
}
cout << endl;
}
return 0;
}