//#include <stdio.h>
//int main()
//{
//
// return 0;
//}
/*
#include <stdio.h>
int q[1004]={},b=-1,f=-1,arr[104][104]={},cnt=1,a[1004]={},c=1;
void view()
{
printf("\n");
for(int i=f+1;i<=b;i++)
{
printf("%d ", q[i]);
}
printf("\n");
}
void push(int i, int j,int n)
{
b++;
a[b]=n;
q[b]=i*100+j;
}
int pop()
{
f++;
arr[q[f]%100][q[f]/100]=cnt;
if(a[f+1]!=cnt)
{
cnt++;
}
return q[f];
}
void bfs()
{
while(b!=f)
{
int s=pop();
int i=s%100;
int j=s/100;
if(arr[i+1][j]==0)
{
push(i+1,j,cnt+1);
}
if(arr[i-1][j]==0)
{
push(i-1,j,cnt+1);
}
if(arr[i][j+1]==0)
{
push(i,j+1,cnt+1);
}
if(arr[i][j-1]==0)
{
push(i,j-1,cnt+1);
}
}
}
int main()
{
int n,y,x;
scanf("%d %d %d", &n,&x,&y);
push(y, x,1);
bfs();
return 0;
}
*/
#include<stdio.h>
int q[30005]={},b=-1,f=-1,arr[203][203]={},l,cnt=1;
void view()
{
int i,j;
printf("\n\n");
for(i=1;i<=l;i++)
{
for(j=1;j<=l;j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
printf("\n\n");
}
void push(int y,int x)
{
arr[y][x]=cnt;
int n=y*100+x;
q[b]=n;
b++;
}
void bfs()
{
while(b!=f)
{
cnt++;
int max=b-1;
for(int i=f;i<=max;i++)
{
int n=q[i];
int y=n/100;
int x=n%100;
if(arr[y+1][x]==0)
{
push(y+1,x);
}
if(arr[y-1][x]==0)
{
push(y-1,x);
}
if(arr[y][x+1]==0)
{
push(y,x+1);
}
if(arr[y][x-1]==0)
{
push(y,x-1);
}
f++;
}
}
}
int main()
{
int n,i,j,y,x,s=0;
scanf("%d%d%d", &n,&y,&x);
l=n;
for(i=0;i<=n+1;i++)
{
arr[i][0]=1;
arr[0][i]=1;
arr[n+1][i]=1;
arr[i][n+1]=1;
}
push(y,x);
bfs();
for(i=50;i<=n;i++)
{
for(j=50;j<=n;j++)
{
printf("%2d ", arr[i][j]);
}
printf("\n");
}
return 0;
}