def solve(l, r, ans): if l > r: return m = (l + r) // 2 ans.append(m) # 左部分木は昇順(少し偏らせる) for x in range(l, m): ans.append(x) # 右部分木だけ平衡に構築 solve(m + 1, r, ans) def main(): k = int(input()) n = (1 << k) - 1 ans = [] solve(1, n, ans) print(*ans) if __name__ == "__main__": main()