#include <iostream>
#define MAX 257
using namespace std;
int K, x, y;
int cnt = 0;
int map[MAX][MAX] = {};
bool isNotHole(int x, int y, int len) {
for (int i=x; i<x+len; i++) {
for (int j=y; j<y+len; j++) {
if(map[i][j]!=0) return false;
}
}
return true;
}
void search(int x, int y, int len) {
cnt++;
int halfLen = len/2;
if(isNotHole(x, y, halfLen)) map[x+halfLen-1][y+halfLen-1] = cnt;
if(isNotHole(x, y+halfLen, halfLen)) map[x+halfLen-1][y+halfLen] = cnt;
if(isNotHole(x+halfLen, y, halfLen)) map[x+halfLen][y+halfLen-1] = cnt;
if(isNotHole(x+halfLen, y+halfLen, halfLen)) map[x+halfLen][y+halfLen] = cnt;
if(len == 2) return;
search(x, y, halfLen);
search(x, y+halfLen, halfLen);
search(x+halfLen, y, halfLen);
search(x+halfLen, y+halfLen, halfLen);
}
int main() {
ios_base :: sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> K >> x >> y;
map[y-1][x-1] = -1;
search(0, 0, (1<<K));
for(int i=(1<<K)-1; i>=0; i--) {
for(int j=0; j<(1<<K); j++) {
cout << map[i][j] << ' ';
}
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojZGVmaW5lIE1BWCAyNTcKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgSywgeCwgeTsKaW50IGNudCA9IDA7CmludCBtYXBbTUFYXVtNQVhdID0ge307Cgpib29sIGlzTm90SG9sZShpbnQgeCwgaW50IHksIGludCBsZW4pIHsKCWZvciAoaW50IGk9eDsgaTx4K2xlbjsgaSsrKSB7CgkJZm9yIChpbnQgaj15OyBqPHkrbGVuOyBqKyspIHsKCQkJaWYobWFwW2ldW2pdIT0wKSByZXR1cm4gZmFsc2U7CgkJfQoJfQoJcmV0dXJuIHRydWU7Cn0KCnZvaWQgc2VhcmNoKGludCB4LCBpbnQgeSwgaW50IGxlbikgewoJY250Kys7CglpbnQgaGFsZkxlbiA9IGxlbi8yOwoJCglpZihpc05vdEhvbGUoeCwgeSwgaGFsZkxlbikpIG1hcFt4K2hhbGZMZW4tMV1beStoYWxmTGVuLTFdID0gY250OwoJaWYoaXNOb3RIb2xlKHgsIHkraGFsZkxlbiwgaGFsZkxlbikpIG1hcFt4K2hhbGZMZW4tMV1beStoYWxmTGVuXSA9IGNudDsKCWlmKGlzTm90SG9sZSh4K2hhbGZMZW4sIHksIGhhbGZMZW4pKSBtYXBbeCtoYWxmTGVuXVt5K2hhbGZMZW4tMV0gPSBjbnQ7CglpZihpc05vdEhvbGUoeCtoYWxmTGVuLCB5K2hhbGZMZW4sIGhhbGZMZW4pKSBtYXBbeCtoYWxmTGVuXVt5K2hhbGZMZW5dID0gY250OwoJCglpZihsZW4gPT0gMikgcmV0dXJuOwoJCglzZWFyY2goeCwgeSwgaGFsZkxlbik7CglzZWFyY2goeCwgeStoYWxmTGVuLCBoYWxmTGVuKTsKCXNlYXJjaCh4K2hhbGZMZW4sIHksIGhhbGZMZW4pOwoJc2VhcmNoKHgraGFsZkxlbiwgeStoYWxmTGVuLCBoYWxmTGVuKTsKCQp9CgoKaW50IG1haW4oKSB7Cglpb3NfYmFzZSA6OiBzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCk7CgkKCWNpbiA+PiBLID4+IHggPj4geTsKCW1hcFt5LTFdW3gtMV0gPSAtMTsKCQoJc2VhcmNoKDAsIDAsICgxPDxLKSk7CgkKCWZvcihpbnQgaT0oMTw8SyktMTsgaT49MDsgaS0tKSB7CgkJZm9yKGludCBqPTA7IGo8KDE8PEspOyBqKyspIHsKCQkJY291dCA8PCBtYXBbaV1bal0gPDwgJyAnOwoJCX0KCQljb3V0IDw8ICdcbic7Cgl9CgkKCXJldHVybiAwOwp9