\(7\)色に光るものは「ゲーミング○○」と呼びます。
\(7\)色をそれぞれ相異なる整数 \( C_1,C_2,...,C_7 \)で表すことにします。
\(0,1,...,2^K-1\) をちょうど\(1\)回ずつ並べた順列\(P=(P_1,P_2,...,P_{2^K})\)について、\(P\) を先頭から 8 個ずつ
\( (P_1,...,P_8) | (P_9,...,P_{16}) | (P_{17},...,P_{24}) | ... \)
のように分けます。同じ\(8\)要素をまとめてブロックと呼びます。
このとき、以下の\(2\)条件をともに満たす順列 \(P\) を ゲーミング数列と呼びます。
整数 \(K\) と \(C_1,C_2,...,C_7\)が与えられるので、ゲーミング数列を\(1\)つ構築してください。与えられる数列において条件を満たす数列が\(1\)つ以上存在することが保証されます。
入力は以下の形式で標準入力から与えられます。
| \(K\) | |
| \(C_1\ C_2\ C_3\ C_4\ C_5\ C_6\ C_7\) |
入力は以下の制約をすべて満たします。
条件を満たすゲーミング数列 \(P\) を、以下の形式で出力してください。
| \(P_1\ P_2\ ...\ P_{2^K}\) |
条件を満たすゲーミング数列が複数存在する場合、そのうちどれを出力しても構いません。
31 2 3 4 5 6 7
0 1 2 3 4 5 6 7
47 14 5 11 9 2 12
1 6 8 13 15 3 10 4 5 11 2 14 7 0 12 9
\(1\)つ目のサンプルでは例えば\(1\oplus2=3、1\oplus7=6\)のように出力例のどの要素を選んでもほかの\(7\)要素とのXORが\(1,2,3,4,5,6,7\) をちょうど\(1\)回ずつ取ります。また\(8\)個の要素しかないので条件2は自然と達成されます。
\(2\)つ目のサンプルでは最初の\(8\)個と次の\(8\)個はそれぞれ条件1を満たしています。また境界の4と5について\(4\oplus5=1\)なので\(1\)bitだけ異なるので条件\(2\)も満たしています。