#arc152e. [arc152_e]Xor Annihilation

[arc152_e]Xor Annihilation

問題文

数直線上の x=1,2,3,...,2N1x=1,2,3,...,2^N-1 の位置に 2N12^N-1 個のボールが並んでおり、x=ix=i にあるボールは wiw_i の重みを持っています。ただし、w1,w2,...,w2N1w_1, w_2,...,w_{2^N-1}11 から 2N12^N-1 までの整数を並び替えた数列です。 さらに、あなたは 2N12^N-1 以下の負でない整数 ZZ11 つ選び、座標 x=pm100100100x=\\pm 100^{100^{100}} にそれぞれ ZZ の重みを固定します。 その後、各ボールは次の規則にしたがって、一斉に運動を始めます。

  • 各時点で、ボールの存在している座標より真に右側にある座標・ボールの重みの総 mathrmXOR\\mathrm{XOR}RR、真に左側にある座標・ボールの重みの総 mathrmXOR\\mathrm{XOR}LL とすると、このボールは R>LR>L であれば右側に、L>RL>R であれば左側に毎秒 11 の速さで動き、L=RL=R であれば静止する。
  • 左右から来たボールが同じ座標に到達したときなど、同じ座標に同時に複数のボールが存在した場合、これらのボールは合体し、その重みは合体前の重みの総 mathrmXOR\\mathrm{XOR} となる。

このとき、100100100^{100} 秒以内に全てのボールが静止するような ZZ はいくつあるでしょうか。

mathrmXOR\\mathrm{XOR} とは

非負整数 A,BA, B のビット単位 mathrmXOR\\mathrm{XOR}AoplusBA \\oplus B は、以下のように定義されます。

  • AoplusBA \\oplus B を二進表記した際の 2k2^k (kgeq0k \\geq 0) の位の数は、A,BA, B を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、3oplus5=63 \\oplus 5 = 6 となります (二進表記すると: 011oplus101=110011 \\oplus 101 = 110)。
一般に kk 個の非負整数 p1,p2,p3,dots,pkp_1, p_2, p_3, \\dots, p_k のビット単位 mathrmXOR\\mathrm{XOR}(dots((p1oplusp2)oplusp3)oplusdotsopluspk)(\\dots ((p_1 \\oplus p_2) \\oplus p_3) \\oplus \\dots \\oplus p_k) と定義され、これは p1,p2,p3,dots,pkp_1, p_2, p_3, \\dots, p_k の順番によらないことが証明できます。

制約

  • 2leqNleq182\\leq N\\leq 18
  • 1leqwileq2N11\\leq w_i\\leq 2^N-1
  • ineqji\\neq j のとき wineqwjw_i\\neq w_j
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる。

NN w1w_1 w2w_2 ldots\\ldots w2N1w_{2^N-1}

出力

答えを整数で出力せよ。


入力例 1

2
1 2 3

出力例 1

ii の重みを持つボールを単に ii と呼びます。

例えば Z=0Z=0 とした場合、はじめ 1122 は右向きに、33 は左向きに動きます。 すると 2233 がぶつかって合体し、この瞬間から左向きに動き始めます。 そののち、11 から 33 まで全てのボールが合体した瞬間に合体後のボールは静止します。 したがって、Z=0Z=0 は条件を満たします。

また、Z=3Z=3 とした場合、1122 は左向き、33 は右向きに、固定した重みに向かって 100100100100^{100^{100}} 秒程度動き続けることになります。 したがって、Z=3Z=3 は条件を満たしません。

実は Z=0Z=0 のみが条件を満たすため、11 と答えてください。


入力例 2

3
7 1 2 3 4 5 6

出力例 2