编程题
### 问题描述
在一个特殊的密码锁中,有 $N$ 个非负整数作为密码序列,这些数都小于 $2^M$。锁的安全机制会检查序列中每个数与之前所有数的二进制汉明距离。汉明距离是指两个数的二进制表示中不同位的数量。现在需要对于密码序列中的每个数,找出与它的汉明距离为 $x$ 的数的索引数量,其中 $x$ 的取值范围是从 $0$ 到 $M$。
### 输入格式
第一行包含两个整数 $N$ 和 $M$。
第二行包含 $N$ 个整数,表示密码序列。
### 输出格式
对于密码序列中的每个数,输出一行 $M+1$ 个整数,表示与该数的汉明距离从 $0$ 到 $M$ 的索引数量。
### 样例输入
```
4 2
0 1 2 3
```
### 样例输出
```
0 0 0
0 1 0
0 1 1
0 2 1
```
### 评测数据规模
- $1 \leq N \leq 2 \times 10^5$
- $1 \leq M \leq 16$
- $0 \leq A_i < 2^M$