#include using namespace std; vector res; void dfs(int val, int d) { res.push_back(val); if (d == 0) return; dfs(val - (1 << (d - 1)), d - 1); dfs(val + (1 << (d - 1)), d - 1); } int main() { int K; cin >> K; dfs(1 << (K - 1), K - 1); for (int i = 0; i < (1 << K) - 1; i++) { if (res[i] == 2) { cout << 3 << ' ' << 2 << ' ' << 1 << " \n"[K == 2]; i += 2; continue; } cout << res[i] << " \n"[i + 1 == (1 << K) - 1]; } return 0; }