로봇 록 밴드 (스몰)

네 목록에서 하나씩 고른 네 수의 비트 XOR이 K와 같아지는 경우의 수를 셉니다.

보통5해시맵완전 탐색면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

당신은 세계 최초의 로봇 록 밴드 Xorbitant의 매니저다. 밴드에는 네 개의 자리가 있고, 각 자리마다 로봇 N대가 오디션을 본다. 한 로봇이 두 자리 이상에 지원하는 일은 없다. 모든 로봇에게는 번호가 붙어 있고, 사람 이름이 겹치듯이 여러 로봇이 같은 번호를 가질 수 있다.

시장 조사 결과, 로봇 관객은 밴드 멤버가 연주를 잘하는지, 외모가 어떤지, 타블로이드에 어떤 기사가 실렸는지를 전혀 신경 쓰지 않는다. 관객이 확인하는 것은 오직 하나, 멤버 네 명의 번호를 모두 비트 XOR 한 값이 유행하는 숫자 K와 같은지다.

이 조건을 만족하도록 자리마다 로봇을 한 대씩 뽑는 방법이 몇 가지인지 세어라. 정확히 말하면, 각각 N개의 수가 들어 있는 네 리스트 A, B, C, D가 주어질 때 A에서 aa, B에서 bb, C에서 cc, D에서 dd를 하나씩 골라 abcd=Ka \oplus b \oplus c \oplus d = K가 되게 하는 경우의 수를 구하는 문제다. 여기서 \oplus는 비트 XOR 연산이다.

입력

첫 줄에 테스트 케이스의 개수 T가 주어진다. 이어서 T개의 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 줄에는 두 정수 NK가 공백으로 구분되어 주어진다. 그다음 네 줄에는 각각 N개의 정수가 공백으로 구분되어 주어지며, 한 자리에 오디션을 본 로봇의 번호를 나타낸다.

제한

  • 1T101 \le T \le 10
  • 0K1090 \le K \le 10^9
  • 모든 로봇 번호는 00 이상 10910^9 이하이다.
  • 1N501 \le N \le 50

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 조건을 만족하는 밴드의 개수다.

힌트

첫 번째 예제의 첫 테스트 케이스에서 XOR 값이 3이 되려면 두 번째 리스트에서는 2를, 네 번째 리스트에서는 1을 골라야 한다. 첫 번째와 세 번째 리스트에서는 0인 로봇 두 대 중 아무거나 고르면 되므로 조건을 만족하는 밴드는 2×2=42 \times 2 = 4가지다. 네 밴드가 모두 (0, 2, 0, 1) 형태이지만 리스트에서 고른 로봇이 다르므로 서로 다른 밴드로 센다.