#include<stdio.h>
int q[1005]={},b=-1,f=-1,arr[103][103]={},cnt=0,l,a[1005]={};
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)
{
int n=y*100+x;
b++;
q[b]=n;
a[b]=cnt;
}
int pop()
{
f++;
if(a[f]==cnt)
{
cnt++;
}
return q[f];
}
void e()
{
printf("\n\n\n\n\n\n\n\n");
}
void bfs()
{
while(b!=f)
{
int p=0,i,j;
int n=pop();
int y=n/100;
int x=n%100;
if(arr[y][x]==0)
{
arr[y][x]=cnt;
}
else
{
continue;
}
if(arr[y+1][x]==0)
{
push(y+1,x);
}
if(arr[y-1][x]==0)
{
push(y-1,x);
e();
}
if(arr[y][x+1]==0)
{
push(y,x+1);
}
if(arr[y][x-1]==0)
{
push(y,x-1);
}
for(i=1;i<=l;i++)
{
for(j=1;j<=l;j++)
{
if(arr[i][j]==0)
{
p=1;
}
}
}
if(p==0)
{
return;
}
}
}
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;
}
for(i=0;i<=n+1;i++)
{
arr[i][n+1]=1;
}
for(i=0;i<=n+1;i++)
{
arr[0][i]=1;
}
for(i=0;i<=n+1;i++)
{
arr[n+1][i]=1;
}
push(y,x);
bfs();
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}