using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static long[] NList => ReadLine().Split().Select(long.Parse).ToArray(); static char[][] SList(long n) => Enumerable.Repeat(0, (int)n).Select(_ => ReadLine().ToCharArray()).ToArray(); public static void Main() { Solve(); } static void Solve() { var k = NN; var len = (1 << k) - 1; var list = new List(len); for (var i = 1; i < len; ++i) list.Add(i + 1); var ans = new List() { 1 }; ans.AddRange(Sort(list)); WriteLine(string.Join(" ", ans)); } class Node { public int Value; public Node Left; public Node Right; public Node (int value) { Value = value; } } static List Sort(List list) { if (list.Count < 3) return list; var mid = list.Count / 2; var ans = new List(list.Count); ans.Add(list[mid]); ans.AddRange(Sort(list.Take(mid).ToList())); ans.AddRange(Sort(list.Skip(mid + 1).ToList())); return ans; } }