#include <iostream>
#define MAX 17
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() {
cin >> K >> x >> y;
map[y-1][x-1] = -1;
search(0, 0, (1<<K));
for(int i=0; i<(1<<K); i++) {
for(int j=0; j<(1<<K); j++) {
cout << map[i][j] << ' ';
}
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojZGVmaW5lIE1BWCAxNwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBLLCB4LCB5OwppbnQgY250ID0gMDsKaW50IG1hcFtNQVhdW01BWF0gPSB7fTsKCmJvb2wgaXNOb3RIb2xlKGludCB4LCBpbnQgeSwgaW50IGxlbikgewoJZm9yIChpbnQgaT14OyBpPHgrbGVuOyBpKyspIHsKCQlmb3IgKGludCBqPXk7IGo8eStsZW47IGorKykgewoJCQlpZihtYXBbaV1bal0hPTApIHJldHVybiBmYWxzZTsKCQl9Cgl9CglyZXR1cm4gdHJ1ZTsKfQoKdm9pZCBzZWFyY2goaW50IHgsIGludCB5LCBpbnQgbGVuKSB7CgljbnQrKzsKCWludCBoYWxmTGVuID0gbGVuLzI7CgkKCWlmKGlzTm90SG9sZSh4LCB5LCBoYWxmTGVuKSkgbWFwW3graGFsZkxlbi0xXVt5K2hhbGZMZW4tMV0gPSBjbnQ7CglpZihpc05vdEhvbGUoeCwgeStoYWxmTGVuLCBoYWxmTGVuKSkgbWFwW3graGFsZkxlbi0xXVt5K2hhbGZMZW5dID0gY250OwoJaWYoaXNOb3RIb2xlKHgraGFsZkxlbiwgeSwgaGFsZkxlbikpIG1hcFt4K2hhbGZMZW5dW3kraGFsZkxlbi0xXSA9IGNudDsKCWlmKGlzTm90SG9sZSh4K2hhbGZMZW4sIHkraGFsZkxlbiwgaGFsZkxlbikpIG1hcFt4K2hhbGZMZW5dW3kraGFsZkxlbl0gPSBjbnQ7CgkKCWlmKGxlbiA9PSAyKSByZXR1cm47CgkKCXNlYXJjaCh4LCB5LCBoYWxmTGVuKTsKCXNlYXJjaCh4LCB5K2hhbGZMZW4sIGhhbGZMZW4pOwoJc2VhcmNoKHgraGFsZkxlbiwgeSwgaGFsZkxlbik7CglzZWFyY2goeCtoYWxmTGVuLCB5K2hhbGZMZW4sIGhhbGZMZW4pOwoJCn0KCgppbnQgbWFpbigpIHsKCQoJY2luID4+IEsgPj4geCA+PiB5OwoJbWFwW3ktMV1beC0xXSA9IC0xOwoJCglzZWFyY2goMCwgMCwgKDE8PEspKTsKCQoJZm9yKGludCBpPTA7IGk8KDE8PEspOyBpKyspIHsKCQlmb3IoaW50IGo9MDsgajwoMTw8Syk7IGorKykgewoJCQljb3V0IDw8IG1hcFtpXVtqXSA8PCAnICc7CgkJfQoJCWNvdXQgPDwgJ1xuJzsKCX0KCQoJcmV0dXJuIDA7Cn0=