통근 열차

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

문제

버스 기사가 정류장에 서 있는 사람을 지나쳐서, 사람과 출입문 사이 거리가 가장 먼 자리에 차를 세우는 모습을 본 적이 있을 것이다. 이유는 아무도 모른다. 심술은 아닐 것이다. 타려는 사람이 걸어오는 동안 이미 탄 승객이 더 편하게 내릴 수 있으니까.

먼 나라의 어느 정부가 통근 철도에 자동 운전 장치를 넣기로 했다. 이 장치가 하는 일 중 하나가 역에서 열차를 세우는 것이다. 레이더가 승강장에 서 있는 승객의 위치를 알려 주면, 열차의 컴퓨터는 각 승객에서 가장 가까운 출입문까지의 거리를 모두 더한 값이 최대가 되는 정차 위치를 고른다. 하드웨어는 다 만들었는데 소프트웨어가 늦었다. 이 기능을 구현하라.

승강장의 길이는 LL이다. 승강장에 승객이 MM명 있고, 승객 pp는 승강장 시작점에서 PpP_p만큼 떨어진 곳에 서 있다. 여기서 0P1PML0 \le P_1 \le \dots \le P_M \le L이다. 열차에는 출입문이 NN개 있고, 출입문 dd는 1번 출입문에서 DdD_d만큼 떨어져 있다. 여기서 0=D1<D2<<DNL0 = D_1 < D_2 < \dots < D_N \le L이다. 출입문의 폭과 승객의 크기는 계산에 넣지 않는다.

열차의 정차 위치 SS는 승강장 시작점에서 1번 출입문까지의 거리이다. 열차가 SS에 섰을 때 승객 ii와 출입문 jj 사이의 거리는 Dj+SPi|D_j + S - P_i|이다. 출입문은 하나도 승강장 밖으로 나가면 안 되므로 0S0 \le S이고 S+DNLS + D_N \le L이다. SS가 정수일 필요는 없다. 이 범위 안의 실수면 무엇이든 될 수 있다.

입력

입력은 공백과 줄바꿈으로 구분된 정수로 이루어진다. 승강장 정보가 먼저 나온다. LL, MM, 그다음 P1PMP_1 \dots P_M 순서이다. 이어서 열차 정보가 나온다. NN, 그다음 D2DND_2 \dots D_N 순서이다. D1D_1은 항상 0이라서 입력에 넣지 않으므로, 열차 정보는 정수 NN개이다.

0<L50000 < L \le 5000, 0<M3000 < M \le 300, 0<N3000 < N \le 300이다.

출력

컴퓨터가 최대로 만들려는 값을 F(S)=i=1Mmin1jNDj+SPiF(S) = \sum_{i=1}^{M} \min_{1 \le j \le N} |D_j + S - P_i|라고 하자. 가능한 모든 정차 위치 SS 중에서 F(S)F(S)의 최댓값을 구하고, 그 값에 2를 곱해서 출력하라.

이 최댓값은 항상 12\frac{1}{2}의 배수라서 2를 곱하면 정수가 된다. 그 정수 하나만 출력한다.