codeforces#P1553H. XOR and Distance

XOR and Distance

Description

You are given an array $a$ consisting of $n$ distinct elements and an integer $k$. Each element in the array is a non-negative integer not exceeding $2^k-1$.

Let's define the XOR distance for a number $x$ as the value of

$$f(x) = \min\limits_{i = 1}^{n} \min\limits_{j = i + 1}^{n} |(a_i \oplus x) - (a_j \oplus x)|,$$

where $\oplus$ denotes the bitwise XOR operation.

For every integer $x$ from $0$ to $2^k-1$, you have to calculate $f(x)$.

The first line contains two integers $n$ and $k$ ($1 \le k \le 19$; $2 \le n \le 2^k$).

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 2^k-1$). All these integers are distinct.

Print $2^k$ integers. The $i$-th of them should be equal to $f(i-1)$.

Input

The first line contains two integers $n$ and $k$ ($1 \le k \le 19$; $2 \le n \le 2^k$).

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 2^k-1$). All these integers are distinct.

Output

Print $2^k$ integers. The $i$-th of them should be equal to $f(i-1)$.

Samples

3 3
6 0 3
3 1 1 2 2 1 1 3
3 4
13 4 2
2 2 6 6 3 1 2 2 2 2 1 3 6 6 2 2

Note

Consider the first example:

  • for $x = 0$, if we apply bitwise XOR to the elements of the array with $x$, we get the array $[6, 0, 3]$, and the minimum absolute difference of two elements is $3$;
  • for $x = 1$, if we apply bitwise XOR to the elements of the array with $x$, we get the array $[7, 1, 2]$, and the minimum absolute difference of two elements is $1$;
  • for $x = 2$, if we apply bitwise XOR to the elements of the array with $x$, we get the array $[4, 2, 1]$, and the minimum absolute difference of two elements is $1$;
  • for $x = 3$, if we apply bitwise XOR to the elements of the array with $x$, we get the array $[5, 3, 0]$, and the minimum absolute difference of two elements is $2$;
  • for $x = 4$, if we apply bitwise XOR to the elements of the array with $x$, we get the array $[2, 4, 7]$, and the minimum absolute difference of two elements is $2$;
  • for $x = 5$, if we apply bitwise XOR to the elements of the array with $x$, we get the array $[3, 5, 6]$, and the minimum absolute difference of two elements is $1$;
  • for $x = 6$, if we apply bitwise XOR to the elements of the array with $x$, we get the array $[0, 6, 5]$, and the minimum absolute difference of two elements is $1$;
  • for $x = 7$, if we apply bitwise XOR to the elements of the array with $x$, we get the array $[1, 7, 4]$, and the minimum absolute difference of two elements is $3$.