문제 123
부분집합 XOR의 최댓값
길이가 $N$인 정수 배열 $A_1,A_2,\cdots,A_N$이 주어진다. $\oplus$는 비트별 XOR 연산이다.
각 질의에서 정수 $X$가 주어진다. 배열에서 서로 다른 $k$개의 인덱스 $i_1,i_2,\cdots,i_k$를 선택했을 때, 다음 값의 최댓값을 구해 보자. 아무 인덱스도 선택하지 않아도 된다.
\[ X\oplus A_{i_1}\oplus A_{i_2}\oplus\cdots\oplus A_{i_k}. \]
입력
첫 번째 줄에 테스트 케이스의 수를 의미하는 정수 $T$가 주어진다. $(1 \le T \le 1\,000)$ 각 테스트 케이스는 다음과 같이 주어진다.
첫 번째 줄에 정수 $N$과 질의의 수를 의미하는 정수 $Q$가 공백으로 구분되어 주어진다. $(0 \le N \le 200\,000; 1 \le Q \le 200\,000)$
두 번째 줄에 배열의 원소 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 주어진다. $(0 \le A_i \le 2^{63}-1)$
세 번째 줄에 각 질의의 정수 $X_1, X_2, \cdots, X_Q$가 공백으로 구분되어 주어진다. $(0 \le X_i \le 2^{63}-1)$
모든 테스트 케이스에 대한 $N+Q$의 합은 $400\,000$ 이하이다. 길이가 $0$인 배열도 빈 줄을 차지한다. 입력 마지막에 연속한 빈 줄은 생략해도 된다.
출력
각 테스트 케이스마다 질의의 답을 질의가 주어진 순서대로 공백으로 구분하여 한 줄에 출력한다.
예제 입력 1
3 0 2 0 9223372036854775807 4 3 0 3 5 6 0 1 7 3 1 1 2 4 0
예제 출력 1
0 9223372036854775807 6 7 7 7