using System; using System.Collections.Generic; using System.Linq; class Solution { static List BinTreeOrder(List list) { if (list.Count <= 2) { return list; } var mid = list.Count / 2; var left = list.Take(mid).ToList(); var right = list.Skip(mid + 1).ToList(); var result = BinTreeOrder(left); result.Insert(0, list[mid]); result.AddRange(BinTreeOrder(right)); return result; } static void Main() { var k = int.Parse(Console.ReadLine()); var list = BinTreeOrder(Enumerable.Range(1, (int)(Math.Pow(2, k) - 1)).Skip(1).ToList()); list.Insert(0, 1); Console.WriteLine(string.Join(" ", list)); } }