#include<bits/stdc++.h>
using namespace std;
int a[100][100];
int c=1;
int L(int xx,int yy,int x,int y,int k)
{
if (k==1)
return 0;
int t=c++;
int s=k/2;
if (x<xx+s&&y<yy+s)
L(xx,yy,x,y,s);
else
{
a[xx+s-1][yy+s-1]=t;
L(xx,yy,xx+s-1,yy+s-1,s);
}
if (x>=xx+s&&y<yy+s)
L(xx+s,yy,x,y,s);
else
{
a[xx+s][yy+s-1] = t;
L(xx+s,yy,xx+s,yy+s-1,s);
}
if (x<xx+s&&y>=yy+s)
L(xx,yy+s,x,y,s);
else
{
a[xx+s-1][yy+s]=t;
L(xx,yy+s,xx+s-1,yy+s,s);
}
if (x>=xx+s&&y>=yy+s)
L(xx+s,yy+s,x,y,s);
else
{
a[xx+s][yy+s]=t;
L(xx+s,yy+s,xx+s,yy+s,s);
}
}
int main()
{
int n,k=1,x,y;
cin>>n>>x>>y;
for(int i=1;i<=k;i++)
k=k*2;
x--;
y--;
a[x][y]=0;
L(0,0,x,y,k);
for(int i=0;i<k;i++)
{
for(int j=0;j<k;j++)
cout<<a[i][j]<<' ';
cout<<endl<<endl;
}
return 0;
}