有名なゲーム番組がまた新たなシーズンを迎えます。今回は XOR 版です!番組は次のように進行します。参加者は数を入れる袋を持っており、最初は空です。その後、$n$ 回のラウンドが順番に行われます。各ラウンドでは、$[0; 2^k-1]$ から一様ランダムに選ばれた整数が参加者に提示されます。参加者は、その数を袋に入れるか、完全に見送るかを選べます。$n$ 回のラウンドがすべて終わると、参加者は袋の中の数の XOR に等しい賞金を持ち帰ります。空の袋の XOR はゼロとみなします。
参加者は $n$ と $k$、そして数が $[0; 2^k-1]$ から一様ランダムに生成されることを知っていますが、具体的にどのような数が出るかは知りません。この情報に基づいて、参加者は賞金の期待値を最大化するように戦略を最適化します。また、番組を盛り上げるため、最適な戦略において次の数を取る場合と取らない場合の期待値が同じなら、参加者は必ずその数を取ります。
あなたはこの番組のプロデューサーです。明日の番組で使用する整数のリストを渡されました。これらの整数は、実際に一様ランダムに生成されています。番組の費用を削減するため、参加者の賞金を最小化したいと考えています。しかし、数そのものを変えると疑われすぎるかもしれません。そのため、参加者に数を提示する順番だけを変えたいと考えています。もちろん、これは秘密裏に行われ、参加者を含め誰もこのような細工を知りません。したがって、参加者の戦略は変わりません。参加者が得る賞金をできるだけ少なくする数の順序を、どれか一つ求めてください!
入力
入力の最初の行には、2 つの整数 $k,n$($4\le k\le18$、$10k\le n\le2\cdot10^5$)が含まれます。
次の行には、$n$ 個の整数 $a_1,a_2,\ldots,a_n$($0\le a_i<2^k$)が含まれます。これらの整数が一様ランダムに生成されていることが保証されます。
この問題には 90 個のテストがあり、$4\le k\le18$ の各値について 6 個のテストがあります。それぞれの $k$ に対して、$n$ の値は $10k$ から $2\cdot10^5$ まで、両端を含む等差数列となっています。
出力
$n$ 個の整数を出力してください。最小の値を達成するように並べ替えた配列 $a_1,a_2,\ldots,a_n$ を出力します。答えが複数ある場合は、どれを出力してもかまいません。
入出力例
入力 1
4 40 4 12 3 5 9 7 0 6 13 10 12 14 14 7 2 8 3 4 2 3 4 9 13 4 13 6 10 2 0 10 4 9 15 13 10 8 6 7 14 3
出力 1
***
注記
ページに収まるように、入力例にはいくつかの改行を追加しています。実際の入力は入力の説明に従います。
最初のテストの答えは意図的に示していません。出力形式に従ってください。