#include<cstring>
#include<iostream>
#include<stdio.h>
using namespace std;
void Solve(int nowsize,int px,int py,int x=0,int y=0)
{
if(nowsize==1)
return;
else
{
int newsize=nowsize>>1;
if(px<=newsize&&py<=newsize)
{
printf("%d %d %d\n",newsize+x+1,newsize+y+1,1);
Solve(newsize,px,py,x,y);
Solve(newsize,newsize,1,x,newsize+y);
Solve(newsize,1,newsize,newsize+x,y);
Solve(newsize,1,1,newsize+x,newsize+y);
}
else if((px<=newsize)&&!(py<=newsize))
{
printf("%d %d %d\n",newsize+x+1,newsize+y,2);
Solve(newsize,newsize,newsize,x,y);
Solve(newsize,px,py-newsize,x,newsize+y);
Solve(newsize,1,newsize,newsize+x,y);
Solve(newsize,1,1,newsize+x,newsize+y);
}
else if(!(px<=newsize)&&(py<=newsize))
{
printf("%d %d %d\n",newsize+x,newsize+y+1,3);
Solve(newsize,newsize,newsize,x,y);
Solve(newsize,newsize,1,x,newsize+y);
Solve(newsize,px-newsize,py,newsize+x,y);
Solve(newsize,1,1,newsize+x,newsize+y);
}
else if(!(px<=newsize)&&!(py<=newsize))
{
printf("%d %d %d\n",newsize+x,newsize+y,4);
Solve(newsize,newsize,newsize,x,y);
Solve(newsize,newsize,1,x,newsize+y);
Solve(newsize,1,newsize,newsize+x,y);
Solve(newsize,px-newsize,py-newsize,newsize+x,newsize+y);
}
}
}
int main()
{
int k;
scanf("%d",&k);
int size;
size=1<<k;
int px,py;
scanf("%d%d",&px,&py);
Solve(size,px,py);
}