AT_arc084_d [ARC084F] XorShift

Description

[problemUrl]: https://atcoder.jp/contests/arc084/tasks/arc084_d 黒板に、$ N $ 個の非負整数が書かれています。$ i $ 個目の非負整数は、$ A_i $ です。 高橋君は、以下の $ 2 $ 種類の操作を、好きな順番で何回でも行うことができます。 - 黒板に書かれている整数を $ 1 $ つ選び、その整数の $ 2 $ 倍の整数を新たに書き加える。選ばれた整数も、そのまま残しておく。 - 黒板に書かれている相異なるとは限らない整数を $ 2 $ つ選び、その $ 2 $ 整数の bitwise xor を新たに書き加える。選ばれた整数も、そのまま残しておく。 黒板に書かれうる整数のうち、$ X $ 以下のものは何種類あるでしょうか。なお、最初に黒板に書かれていた整数も、黒板に書かれうる整数とみなします。 答えは非常に大きくなる可能性があるので、$ 998244353 $ で割った余りを求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ X $ $ A_1 $ $ : $ $ A_N $

Output Format

黒板に書かれうる整数のうち、$ X $ 以下のものの個数を $ 998244353 $ で割った余りを出力せよ。

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 6 $ - $ 1\ \leq\ X\