다리

아직 제출이 없습니다시간 제한3초메모리 제한128 MB

문제

도시를 북쪽에서 남쪽으로 흐르는 두 개의 강이 있고, 각 강을 따라 집들이 그림처럼 늘어서 있다. 양쪽 강가에 사는 사람들이 서로 더 빨리 오갈 수 있도록, 두 강을 잇는 다리를 하나 놓으려고 한다.

왼쪽 강은 세로선 x=1x = -1이고, 오른쪽 강은 세로선 x=1x = 1이다. 다리는 두 강 위의 한 지점씩을 잇는, xx축에 평행한 선분으로 나타낸다. 집의 위치는 각 세로선 위의 점으로 주어진다.

왼쪽 집들은 (1,ai)(-1, a_i) (i=1,,ni = 1, \dots, n)에, 오른쪽 집들은 (1,bj)(1, b_j) (j=1,,mj = 1, \dots, m)에 있다. 다리를 높이 hh에 놓으면(즉 두 점 (1,h)(-1, h)(1,h)(1, h)를 잇는 다리), 왼쪽 집 aia_i에서 다리를 건너 오른쪽 집 bjb_j까지 가는 거리는 aih+2+hbj|a_i - h| + 2 + |h - b_j|이다.

모든 (왼쪽 집, 오른쪽 집) 쌍에 대한 이 거리의 합

i,jd(ai,bj)=i,j(aih+2+hbj)\sum_{i,j} d(a_i, b_j) = \sum_{i,j} \left( |a_i - h| + 2 + |h - b_j| \right)

을 최소로 만드는 다리의 높이 hh를 구하는 프로그램을 작성하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스의 첫째 줄에는 두 정수 nnmm이 주어진다 (1n,m1061 \le n, m \le 10^6). nn은 왼쪽 강의 집 수, mm은 오른쪽 강의 집 수이다. 이어지는 nn개의 줄에는 왼쪽 집의 위치 aia_i가 한 줄에 하나씩, 그다음 mm개의 줄에는 오른쪽 집의 위치 bjb_j가 한 줄에 하나씩 주어진다 (ai,bj107|a_i|, |b_j| \le 10^7). 모든 위치는 정수이다.

출력

각 테스트 케이스마다 거리의 합을 최소로 만드는 높이 hh를 소수점 첫째 자리까지 한 줄에 출력한다. 그런 hh가 여러 개이면 가장 작은 값을 출력한다.