#include <stdio.h>
#include <stdlib.h>
int queue[2][1000]={};
int back=-1,front=-1;
int pi,pj,n,s=1,c=0;
int l;
int arr[101][101]={0};
void push(int a,int b)
{
// a, b가 범위 넘거나 1이면 return 해버리기
if(a<0 || a>=n || b<0 || b>=n || arr[a][b]!=0) return ;
back++;
printf("push! i = %d j = %d\n",a,b);
queue[0][back] = a;
queue[1][back] = b;
arr[a][b]=s;
}
void pop()
{
front++;
pi = queue[0][front];
pj = queue[1][front];
}
int dir[4][2]={{0,+1},{0,-1},{+1,0},{-1,0}};
void bfs(int x1,int y1)
{
printf("bfs start\n");
push(x1,y1);
while(back!=front)
{
int max=back+1;
for(int k=front;k<=max;k++)
{
s++;
pop();
for( int i=0;i<4;i++)
{
push(pi+dir[i][0],pj+dir[i][1]);
}
}
}
}
int main()
{
int x,y;
int i,j;
scanf("%d %d %d",&n,&x,&y);
bfs(x-1,y-1);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
}