음이 아닌 정수 $N$개로 이루어진 배열 $A=[A_{1}, \dots, A_{N}]$이 주어진다. 배열 $A$에 다음 연산을 $K$번 진행한다.
$K$번의 연산을 진행한 이후 배열에 남은 $N-K$개의 원소를 모두 bitwise $\textrm{AND}$ 연산한 값의 최댓값을 구해보자.
bitwise $\textrm{AND}$와 bitwise $\textrm{OR}$ 연산에 대한 설명은 노트를 참고하라.
첫 번째 줄에 $N$과 $K$가 공백으로 구분되어 주어진다. $(2 \leq N \leq 500\, 000;1 \leq K \leq N-1)$
두 번째 줄에 배열 $A$의 원소 $A_1, A_2, \dots, A_{N}$이 공백으로 구분되어 주어진다. $\left( 0 \leq A_{i} \leq 10^{9}\right)$
총 $K$번의 연산을 진행한 후 배열에 남은 $N-K$개의 원소를 모두 bitwise $\textrm{AND}$ 연산한 값의 최댓값을 출력한다.
5 3
1 4 2 5 1
5
위 예제의 최댓값을 구하기 위한 총 $3$번의 연산 순서의 예시는 다음과 같다.
bitwise 연산자들은 비트 단위로 연산을 시행한다.
bitwise $\textrm{AND}$ 연산($\&$)은 두 수의 각 비트마다 다음과 같은 연산을 진행한다.
$$ \ \begin{array}{rcl} 0101_2 & = & 5 \\ \& \ 0011_2 & = & 3 \\ \hline 0001_2 & = & 1 \end{array} $$