#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define rep(i,n) for(int i=0; i pi; typedef pair pl; typedef pair plc; int main() { int k; int t[5000]; cin >> k; t[1] = (pow(2, k) - 1)/2 + 1; for (int i = 2,j=1,n = k-1; i < pow(2, k); i++) { if (i == pow(2, j)) { n -= 1; j++; } if (i % 2 != 0) { t[i] = t[i / 2] + pow(2, n); } else { t[i] = t[i / 2] - pow(2, n); } } int ind1 = pow(2, k) - 2; int ind2 = (pow(2, k) - 1) / 2; swap(t[ind1], t[ind2]); for (int i = 1; i < pow(2, k); i++) { cout << t[i]; if (i != pow(2, k) - 1) cout << " "; } cout << endl; return 0; }