AT_code_thanks_festival_2017_f Limited Xor Subset

Description

[problemUrl]: https://atcoder.jp/contests/code-thanks-festival-2017/tasks/code_thanks_festival_2017_f $ N $ 個の正の整数が与えられ、$ i(1≦i≦N) $ 番目の正の整数は $ a_i $ です。 $ N $ 個の整数のうち $ 0 $ 個以上を選んで、選んだ全ての整数のビットごとの排他的論理和を計算します。 計算結果が $ K $ となるような整数の選び方の個数を $ 10^9+7 $ で割った余りを求めてください。 ただし、$ 0 $ 個選んだときのビットごとの排他的論理和は $ 0 $ とします。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ K $ $ a_1 $ $ : $ $ a_N $

Output Format

条件を満たす整数の選び方の個数を $ 10^9+7 $ で割った余りを出力せよ。

Explanation/Hint

### 制約 - $ 1≦N≦10^5 $ - $ 0≦K≦10^5 $ - $ 1≦a_i\ (1≦i≦N) $ - $ a_1\ +\ …\ +\ a_N≦10^5 $ - 入力は全て整数である。 ### Sample Explanation 1 選んだ全ての整数についてビットごとの排他的論理和が $ K\ =\ 3 $ となるような選び方は以下の $ 4 $ 通りです。 - $ \{a_1,a_2\} $ - $ \{a_1,a_4\} $ - $ \{a_2,a_3\} $ - $ \{a_3,a_4\} $ ### Sample Explanation 2 選んだ全ての整数についてビットごとの排他的論理和が $ K\ =\ 0 $ となるような選び方は以下の $ 8 $ 通りです。 - $ \{\} $ (選んだ整数が $ 0 $ 個の場合) - $ \{a_1,a_2\} $ - $ \{a_1,a_3\} $ - $ \{a_1,a_4\} $ - $ \{a_2,a_3\} $ - $ \{a_2,a_4\} $ - $ \{a_3,a_4\} $ - $ \{a_1,a_2,a_3,a_4\} $