#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int flag = 0;
void chess(vector<vector<int>> &a,int x, int y,int m, int n,int size)
{
if(size == 1) return;
int t = flag++;
int s = size/2;
if(m < s+x && n < s+y)
{
chess(a,x,y,m,n,s);
}else
{
a[s+x-1][s+y-1] = t;
cout << s+x-1 << s+y-1 << t << endl;
chess(a,x,y,s+x-1,s+y-1,s);
}
if(m < s+x && n >= s+y)
{
chess(a,x,y+s,m,n,s);
}else
{
a[s+x-1][s+y] = t;
cout << s+x-1 << s+y << t << endl;
chess(a,x,y+s,s+x-1,s+y,s);
}
if(m >= s+x && n < s+y)
{
chess(a,x+s,y,m,n,s);
}else
{
a[s+x][s+y-1] = t;
cout << s+x << s+y-1 << t << endl;
chess(a,x+s,y,s+x,s+y-1,s);
}
if(m >= s+x && n >= s+y)
{
chess(a,x+s,y+s,m,n,s);
}else
{
a[s+x][s+y] = t;
cout << s+x << s+y << t << endl;
chess(a,x+s,y+s,s+x,s+y,s);
}
return;
}
int main()
{
vector<vector<int>> a(2000,vector<int>(2000));
int k,x,y;
cin >> k;
cin >> x >> y;
int s = 1;
for(int i = 1; i <= k; i++)
{
s *= 2;
}
chess(a,1,1,x,y,s);
return 0;
}