#include <bits/stdc++.h>
using namespace std;
// 1 ~ N을 완성하기 위해서는, 1 ~ N - 1이 완성되어야 한다.
// -> 재귀 느낌이 난다.
// 재귀에서 상태 -> 파라미터화
// 상태 : N - 1, 어디서부터, 어디로
// n <= 20, O(2^n)은 가능
int n;
// k - 1번이 x에서 y로 움직이고, 바닥이 움직이고, 다시 4번이 y에서 z로움직인다.
void hanoi(int k, int from, int to) {
if (k == 0) return;
int middle = 6 - from - to;
hanoi(k - 1, from, middle);
cout << from << " " << to << '\n';
hanoi(k - 1, middle, to);
}
int main(void) {
cin.tie(0)->sync_with_stdio(false);
cin >> n;
hanoi(n, 1, 3);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyAxIH4gTuydhCDsmYTshLHtlZjquLAg7JyE7ZW07ISc64qULCAxIH4gTiAtIDHsnbQg7JmE7ISx65CY7Ja07JW8IO2VnOuLpC4KLy8gLT4g7J6s6reAIOuKkOuCjOydtCDrgpzri6QuCi8vIOyerOq3gOyXkOyEnCDsg4Htg5wgLT4g7YyM652866+47YSw7ZmUCi8vIOyDge2DnCA6IE4gLSAxLCDslrTrlJTshJzrtoDthLAsIOyWtOuUlOuhnAovLyBuIDw9IDIwLCBPKDJebinsnYAg6rCA64qlCgppbnQgbjsKCi8vIGsgLSAx67KI7J20IHjsl5DshJwgeeuhnCDsm4Dsp4HsnbTqs6AsIOuwlOuLpeydtCDsm4Dsp4HsnbTqs6AsIOuLpOyLnCA067KI7J20IHnsl5DshJwgeuuhnOybgOyngeyduOuLpC4Kdm9pZCBoYW5vaShpbnQgaywgaW50IGZyb20sIGludCB0bykgeyAKCWlmIChrID09IDApIHJldHVybjsKCWludCBtaWRkbGUgPSA2IC0gZnJvbSAtIHRvOwoJaGFub2koayAtIDEsIGZyb20sIG1pZGRsZSk7Cgljb3V0IDw8IGZyb20gPDwgIiAiIDw8IHRvIDw8ICdcbic7CgloYW5vaShrIC0gMSwgbWlkZGxlLCB0byk7Cn0KCgppbnQgbWFpbih2b2lkKSB7CgljaW4udGllKDApLT5zeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luID4+IG47CgloYW5vaShuLCAxLCAzKTsKfQ==