RT
#include<bits/stdc++.h>
using namespace std;
int n,m,i,j,x2,y2;
int a[405][405];
struct Tnode{
int x,y;
int step;
}qu[164025];
int dx[8]={-1,1,2,2,1,-1,-2,-2};
int dy[8]={2,2,1,-1,-2,-2,-1,1};
int BFS(int x0,int y0)
{
qu[0].x=x0;
qu[0].y=y0;
int head=0;
int tail=1;
while(head<tail)
{
int x=qu[head].x;
int y=qu[head].y;
int s=qu[head].step;
head++;
for(int d=0;d<8;d++)
{
int nx=x+dx[d];
int ny=y+dy[d];
if(nx==i&&ny==j)
return s+1;
if(nx<=i&&ny<=j&&nx>0&&ny>0)
{
qu[tail].step=s+1;
qu[tail].x=nx;
qu[tail++].y=ny;
}
}
}
return -1;
}
int main(){
scanf("%d",&n);
scanf("%d",&m);
scanf("%d",&x2);
scanf("%d",&y2);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<BFS(x2,y2)<<" ";
cout<<endl;
}
return 0;
}