AT_abc422_d [ABC422D] Least Unbalanced
Description
$ N $ を正整数とします。長さ $ 2^N $ の非負整数列 $ A=(A_1, A_2, \dots, A_{2^N}) $ の **アンバランスさ** を次の操作によって得られる非負整数値として定義します。
- はじめ、 $ X=0 $ とする。
- 次の一連の操作を $ N $ 回行う。
- $ X $ を $ \max(X, \max(A) - \min(A)) $ に更新する。ここで $ \max(A) $ および $ \min(A) $ は数列 $ A $ の最大値と最小値を意味する。
- 先頭から順に $ 2 $ つずつ要素を組にして、それらの和を並べることでできる長さが $ A $ の半分の数列を、新たな $ A $ とする。すなわち、 $ A \gets (A_1 + A_2, A_3 + A_4, \dots, A_{\vert A \vert - 1} + A_{\vert A \vert}) $ とする。
- 最終的な $ X $ をアンバランスさとする。
例えば $ N=2, A=(6, 8, 3, 5) $ は以下の手順によりアンバランスさが $ 6 $ であるとわかります。
- はじめ、 $ X=0 $ である。
- 1 回目の一連の操作は次の通りである。
- $ X $ を $ \max(X, \max(A) - \min(A)) = \max(0, 8 - 3) = 5 $ に更新する。
- $ A $ を $ (6+8, 3+5) = (14, 8) $ とする。
- 2 回目の一連の操作は次の通りである。
- $ X $ を $ \max(X, \max(A) - \min(A)) = \max(5, 14 - 8) = 6 $ に更新する。
- $ A $ を $ (14 + 8) = (22) $ とする。
- 最終的に $ X=6 $ となる。
非負整数 $ K $ が与えられます。長さ $ 2^N $ の非負整数列であって総和が $ K $ であるものの中で、アンバランスさが最小値を取る数列を構成してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $
Output Format
アンバランスさが最小値を取る数列を $ B=(B_1,B_2,\dots,B_{2^N}) $ とする。 $ B $ のアンバランスさを $ U $ とする。この時、以下の形式で答えを出力せよ。
> $ U $ $ B_1 $ $ B_2 $ $ \dots $ $ B_{2^N} $
答えが複数ある場合は、どれを出力しても正答とみなされる。
Explanation/Hint
### Sample Explanation 1
$ (5, 6) $ はアンバランスさが $ 1 $ の数列で、これが条件を満たす数列のうちアンバランスさが最小の数列です。
### Constraints
- $ 1 \leq N \leq 20 $
- $ 0 \leq K \leq 10^9 $
- $ N, K $ は整数