P23547 [AtCoder] Split and Square
NOI
题目描述

Problem Statement

For a set X of non-negative integers, let f(X) denote the set of non-negative integers that can be represented as the bitwise $\mathrm{XOR}$ of two integers (possibly the same) in X. As an example, for $X=\lbrace 1, 2, 4\rbrace$, we have $f(X)=\lbrace 0, 3, 5, 6\rbrace$.
You are given a set of N non-negative integers less than 2^M: $S=\lbrace A_1, A_2, \dots, A_N\rbrace$.
You may perform the following operation any number of times.

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

Find the minimum number of operations needed to make $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$.
    

Input

The input is given from Standard Input in the following format:
N M
A_1
A_2
$\vdots$
A_N

Output

Print the answer.

Constraints

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

Sample Input 1

4 2
00
01
10
11

Sample Output 1

2

In the first operation, you can divide $S into 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 S$ with $\lbrace 0, 1\rbrace$.
In the second operation, you can divide $S into T_1=\lbrace 0\rbrace, T_2=\lbrace 1\rbrace, making S=\lbrace 0\rbrace$.
There is no way to make $S=\lbrace 0\rbrace$ in fewer than two operations, so the answer is 2.

Sample Input 2

1 8
10011011

Sample Output 2

1

In the first operation, you can divide $S into T_1=\lbrace 155\rbrace, T_2=\lbrace \rbrace, making S=\lbrace 0\rbrace$. Note that T_1 or T_2 may be empty.

Sample Input 3

1 2
00

Sample Output 3

0

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

Sample Input 4

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

Sample Output 4

10

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
4 2 00 01 10 11
样例输出
2