#include #include using namespace std; int k; void DFS(int l, int r) { if (l > r) return; if (l == r) { printf("%d ", l); return; } int mid = l + r >> 1; printf("%d ", mid); DFS(l, mid - 1), DFS(mid + 1, r); } int main() { // freopen("tree.in", "r", stdin); // freopen("tree.out", "w", stdout); scanf("%d", &k); printf("%d ", (1 << k) - 1); DFS(1, (1 << k) - 2); return 0; }