평범한 이진탐색. 대신 번갈아 가면서 탐색하지 않으면 break되게끔 설계(같은 방향 두번 밟으면)
for test in range(1, int(input()) + 1):
N, M = map(int, input().split())
A = sorted(list(map(int, input().split())))
B = list(map(int, input().split()))
answer = 0
for num in B:
left, right, flag = 0, N - 1, 2
while left <= right:
mid = (left + right) // 2
if A[mid] == num:
answer += 1
break
if num < A[mid]:
right = mid - 1
if flag == 1: break
flag = 1
elif num > A[mid]:
left = mid + 1
if not flag: break
flag = 0
print(f'#{test} {answer}')