include
using namespace std;
void solve(int l1, int r1, int l2, int r2, int x, int y) {
int m1 = (l1 + l2) / 2;
int m2 = (r1 + r2) / 2;
int lost;
if (x <= m1 && y <= m2) {
cout << m1 + 1 << " " << m2 + 1 << " " << 1 << endl;
lost = 1;
} else if (x > m1 && y <= m2) {
cout << m1 << " " << m2 + 1 << " " << 3 << endl;
lost = 3;
} else if (x <= m1 && y > m2) {
cout << m1 + 1 << " " << m2 << " " << 2 << endl;
lost = 2;
} else if (x > m1 && y <= m2) {
cout << m1 << " " << m2 + 1 << " " << 3 << endl;
lost = 3;
} else if (x <= m1 && y > m2) {
cout << m1 + 1 << " " << m2 << " " << 2 << endl;
lost = 2;
} else if (x > m1 && y > m2) {
cout << m1 << " " << m2 << " " << 4 << endl;
lost = 4;
}
if (l2 - l1 == 1)
return;
if (lost == 1)
solve(l1, r1, m1, m2, x, y);
else
solve(l1, r1, m1, m2, m1, m2);
if (lost == 2)
solve(l1, m2 + 1, m1, r2, x, y);
else
solve(l1, m2 + 1, m1, r2, m1, m2 + 1);
if (lost == 3)
solve(m1 + 1, r1, l2, m2, x, y);
else
solve(m1 + 1, r1, l2, m2, m1 + 1, m2);
if (lost == 4)
solve(m1 + 1,m2+1,l2, r2, x, y);
else
solve(m1 + 1, m2 + 1, l2, r2, m1 + 1, m2 + 1);
}
int main() {
int n, x, y;
cin >> n >> x >> y;
solve(1, 1, 1 << n, 1 << n, x, y);
return 0;
}