#include<bits/stdc++.h>
using namespace std;
int n,x,y,a[1030][1030],t;
void f(int p,int k1,int k2,int x,int y){
int m=p/2;
int xx=k1;
int yy=k2;
int xt=m+xx;
int yt=m+yy;
a[xt-1][yt-1]=1;
a[xt][yt-1]=1;
a[xt-1][yt]=1;
a[xt][yt]=1;
if(p>=2){
if(x<=xt&&y<=yt){
cout<<xt<<' '<<yt<<' '<<1<<endl;
if(xt-1!=x&&yt-1!=y)a[xt-1][yt-1]=0;
f(m,xx,yy,x,y);
f(m,xx,yt,xt-1,yt);
f(m,xt,yy,xt,yt-1);
f(m,xt,yt,xt,yt);
}
if(x>xt&&y<=yt){
cout<<xt<<' '<<yt-1<<' '<<2<<endl;
if(xt-1!=x&&yt!=y)a[xt-1][yt]=0;
f(m,xx,yy,xt-1,yt-1);
f(m,xx,yt,x,y);
f(m,xt,yy,xt,yt-1);
f(m,xt,yt,xt,yt);
}
if(x<=xt&&y>yt){
cout<<xt-1<<' '<<yt<<' '<<3<<endl;
if(xt!=x&&yt-1!=y)a[xt][yt-1]=0;
f(m,xx,yy,xt-1,yt-1);
f(m,xx,yt,xt-1,yt);
f(m,xt,yy,x,y);
f(m,xt,yt,xt,yt);
}
if(x>xt&&y>yt){
cout<<xt-1<<' '<<yt-1<<' '<<4<<endl;
if(xt!=x&&yt!=y)a[xt][yt]=0;
f(m,xx,yy,xt-1,yt-1);
f(m,xx,yt,xt-1,yt);
f(m,xt,yy,xt,yt-1);
f(m,xt,yt,x,y);
}
}else{
return;
}
}
int main(){
cin>>n>>x>>y;
a[x][y]=1;
t=pow(2,n);
f(t,1,1,x,y);
return 0;
}