atcoder#ARC155E. [ARC155E] Split and Square

[ARC155E] Split and Square

Score : 900900 points

Problem Statement

For a set XX of non-negative integers, let f(X)f(X) denote the set of non-negative integers that can be represented as the bitwise XOR\mathrm{XOR} of two integers (possibly the same) in XX. As an example, for X={1,2,4}X=\lbrace 1, 2, 4\rbrace, we have f(X)={0,3,5,6}f(X)=\lbrace 0, 3, 5, 6\rbrace.

You are given a set of NN non-negative integers less than 2M2^M: S={A1,A2,,AN}S=\lbrace A_1, A_2, \dots, A_N\rbrace.

You may perform the following operation any number of times.

  • Divide SS into two sets T1T_1 and T2T_2 (one of them may be empty). Then, replace SS with the union of f(T1)f(T_1) and f(T2)f(T_2).

Find the minimum number of operations needed to make S={0}S=\lbrace 0\rbrace.

What is bitwise $\mathrm{XOR}$?

The bitwise $\mathrm{XOR}$ of non-negative integers $A$ and $B$, $A \oplus B$, is defined as follows.

  • When $A \oplus B$ is written in binary, the $k$-th lowest bit ($k \geq 0$) is $1$ if exactly one of the $k$-th lowest bits of $A$ and $B$ is $1$, and $0$ otherwise.
For instance, 3 \oplus 5 = 6 (in binary: 011 \oplus 101 = 110).
Generally, the bitwise \mathrm{XOR} of k non-negative integers p_1, p_2, p_3, \dots, p_k is defined as (\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k), which can be proved to be independent of the order of p_1, p_2, p_3, \dots, p_k.

Constraints

  • 1N3001 \leq N \leq 300
  • 1M3001 \leq M \leq 300
  • 0Ai<2M0 \leq A_i < 2^{M}
  • Ai (1iN)A_i\ (1\leq i \leq N) are pairwise distinct.
  • Each AiA_i is given with exactly MM digits in binary (possibly with leading zeros).
  • All values in the input are integers.

Input

The input is given from Standard Input in the following format:

NN MM

A1A_1

A2A_2

\vdots

ANA_N

Output

Print the answer.

4 2
00
01
10
11
2

In the first operation, you can divide SS into T1={0,1},T2={2,3}T_1=\lbrace 0, 1\rbrace, T_2=\lbrace 2, 3\rbrace, for which $f(T_1) =\lbrace 0, 1\rbrace, f(T_2) =\lbrace 0, 1\rbrace$, replacing SS with {0,1}\lbrace 0, 1\rbrace.

In the second operation, you can divide SS into T1={0},T2={1}T_1=\lbrace 0\rbrace, T_2=\lbrace 1\rbrace, making S={0}S=\lbrace 0\rbrace.

There is no way to make S={0}S=\lbrace 0\rbrace in fewer than two operations, so the answer is 22.

1 8
10011011
1

In the first operation, you can divide SS into T1={155},T2={}T_1=\lbrace 155\rbrace, T_2=\lbrace \rbrace, making S={0}S=\lbrace 0\rbrace. Note that T1T_1 or T2T_2 may be empty.

1 2
00
0

We have S={0}S=\lbrace 0\rbrace from the beginning; no operation is needed.

20 20
10011011111101101111
10100111100001111100
10100111100110001111
10011011100011011111
11001000001110011010
10100111111011000101
11110100001001110010
10011011100010111001
11110100001000011010
01010011101011010011
11110100010000111100
01010011101101101111
10011011100010110111
01101111101110001110
00111100000101111010
01010011101111010100
10011011100010110100
01010011110010010011
10100111111111000001
10100111111000010101
10