AT_abc386_e [ABC386E] Maximize XOR

Description

長さ $ N $ の非負整数列 $ A $ および整数 $ K $ が与えられます。ここで二項係数 $ \dbinom{N}{K} $ は $ 10^6 $ 以下であることが保証されます。 $ A $ から異なる $ K $ 項を選ぶとき、選んだ $ K $ 個の数の総 XOR としてあり得る最大値を求めてください。 すなわち $ \underset{1\leq i_1\lt i_2\lt \ldots\lt i_K\leq N}{\max} A_{i_1}\oplus A_{i_2}\oplus \ldots \oplus A_{i_K} $ を求めてください。 XOR とは非負整数 $ A,B $ の XOR $ A \oplus B $ は、以下のように定義されます。 - $ A \oplus B $ を二進表記した際の $ 2^k \, (k \geq 0) $ の位の数は、 $ A,B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。 例えば、 $ 3 \oplus 5 = 6 $ となります (二進表記すると: $ 011 \oplus 101=110 $ )。 一般に $ k $ 個の整数 $ p_1, \dots, p_k $ の XOR は $ (\cdots ((p_1 \oplus p_2) \oplus p_3) \oplus \cdots \oplus p_k) $ と定義され、これは $ p_1, \dots, p_k $ の順番によらないことが証明できます。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ K $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 $ (3,2,6,4) $ から異なる $ 2 $ つの項を選ぶ方法は以下の $ 6 $ 通りあります。 - $ (3,2) $ のとき、選んだ数の総 XOR は $ 3\oplus 2 = 1 $ です。 - $ (3,6) $ のとき、選んだ数の総 XOR は $ 3\oplus 6 = 5 $ です。 - $ (3,4) $ のとき、選んだ数の総 XOR は $ 3\oplus 4 = 7 $ です。 - $ (2,6) $ のとき、選んだ数の総 XOR は $ 2\oplus 6 = 4 $ です。 - $ (2,4) $ のとき、選んだ数の総 XOR は $ 2\oplus 4 = 6 $ です。 - $ (6,4) $ のとき、選んだ数の総 XOR は $ 6\oplus 4 = 2 $ です。 よって、求める最大値は $ 7 $ です。 ### Constraints - $ 1\leq K\leq N\leq 2\times 10^5 $ - $ 0\leq A_i\lt 2^{60} $ - $ \dbinom{N}{K}\leq 10^6 $ - 入力は全て整数