F - XorShift

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 1000

問題文

黒板に、N 個の非負整数が書かれています。i 個目の非負整数は、A_i です。

高橋君は、以下の 2 種類の操作を、好きな順番で何回でも行うことができます。

  • 黒板に書かれている整数を 1 つ選び、その整数の 2 倍の整数を新たに書き加える。選ばれた整数も、そのまま残しておく。
  • 黒板に書かれている相異なるとは限らない整数を 2 つ選び、その 2 整数の bitwise xor を新たに書き加える。選ばれた整数も、そのまま残しておく。

黒板に書かれうる整数のうち、X 以下のものは何種類あるでしょうか。なお、最初に黒板に書かれていた整数も、黒板に書かれうる整数とみなします。 答えは非常に大きくなる可能性があるので、998244353 で割った余りを求めてください。

制約

  • 1 \leq N \leq 6
  • 1 \leq X < 2^{4000}
  • 1 \leq A_i < 2^{4000}(1\leq i\leq N)
  • 入力は全て整数である
  • X,A_i(1\leq i\leq N)2 進表記で与えられ、先頭の桁は 1 である

入力

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

N X
A_1
:
A_N

出力

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


入力例 1

3 111
1111
10111
10010

出力例 1

4

最初、黒板には 15,23,18 が書かれています。7 以下の整数のうち、0,3,5,64 数を書くことができます。 例えば、6 は以下のような操作によって書くことができます。

  • 152 倍し、30 を書く
  • 3018 の xor をとり、12 を書く
  • 122 倍し、24 を書く
  • 3024 の xor をとり、6 を書く

入力例 2

4 100100
1011
1110
110101
1010110

出力例 2

37

入力例 3

4 111001100101001
10111110
1001000110
100000101
11110000011

出力例 3

1843

入力例 4

1 111111111111111111111111111111111111111111111111111111111111111
1

出力例 4

466025955

998244353 で割った余りを求めてください。

Score : 1000 points

Problem Statement

There are N non-negative integers written on a blackboard. The i-th integer is A_i.

Takahashi can perform the following two kinds of operations any number of times in any order:

  • Select one integer written on the board (let this integer be X). Write 2X on the board, without erasing the selected integer.
  • Select two integers, possibly the same, written on the board (let these integers be X and Y). Write X XOR Y (XOR stands for bitwise xor) on the blackboard, without erasing the selected integers.

How many different integers not exceeding X can be written on the blackboard? We will also count the integers that are initially written on the board. Since the answer can be extremely large, find the count modulo 998244353.

Constraints

  • 1 \leq N \leq 6
  • 1 \leq X < 2^{4000}
  • 1 \leq A_i < 2^{4000}(1\leq i\leq N)
  • All input values are integers.
  • X and A_i(1\leq i\leq N) are given in binary notation, with the most significant digit in each of them being 1.

Input

Input is given from Standard Input in the following format:

N X
A_1
:
A_N

Output

Print the number of different integers not exceeding X that can be written on the blackboard.


Sample Input 1

3 111
1111
10111
10010

Sample Output 1

4

Initially, 15, 23 and 18 are written on the blackboard. Among the integers not exceeding 7, four integers, 0, 3, 5 and 6, can be written. For example, 6 can be written as follows:

  • Double 15 to write 30.
  • Take XOR of 30 and 18 to write 12.
  • Double 12 to write 24.
  • Take XOR of 30 and 24 to write 6.

Sample Input 2

4 100100
1011
1110
110101
1010110

Sample Output 2

37

Sample Input 3

4 111001100101001
10111110
1001000110
100000101
11110000011

Sample Output 3

1843

Sample Input 4

1 111111111111111111111111111111111111111111111111111111111111111
1

Sample Output 4

466025955

Be sure to find the count modulo 998244353.