def check(x): ret = 0 while not (x & 1): x >>= 1 ret += 1 return ret def f(x): ret = [] Q = [x] ret.append(x) while Q: x = Q.pop() x1 = x - (1 << (check(x)-1)) ret.append(x1) x2 = x + (1 << (check(x)-1)) ret.append(x2) if x2 & 1 == 0: Q.append(x2) if x1 & 1 == 0: Q.append(x1) return ret K = int(input()) # 頂点数 2^K - 1 # 中央 2^(K-1) x0 = 1 << (K - 1) x1 = x0 - (1 << (K - 2)) x2 = x0 + (1 << (K - 2)) X1 = [] X2 = [] X1 = f(x1) X2 = f(x2) ans = [x2] + [x0] + X1 + X2[1:] print(*ans)