울타리 걷어내기

인접한 구역 사이 울타리를 뜯어 모든 구역이 이어지도록 하고 뜯어낸 길이 합을 가장 작게 만듭니다.

보통7최소 신장 트리그리디정렬아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

농부 존은 자기 소 상당수가 광장 공포증이 있다는 것을 알아차렸다. 넓게 트인 곳을 무서워한다는 뜻이다. 소가 풀을 뜯을 때 덜 무서워하도록, 존은 큰 밭에 남북 방향의 세로 울타리와 동서 방향의 가로 울타리를 세워 작은 구역 여러 개로 나누었다.

큰 밭은 (0,0)(0,0)(A,B)(A,B)를 마주 보는 두 꼭짓점으로 하는 직사각형이다. 존은 서로 다른 위치 a1,,ana_1, \ldots, a_n에 세로 울타리 nn개를 세웠고 (0<ai<A0 < a_i < A), 위치 aia_i의 울타리는 (ai,0)(a_i, 0)에서 (ai,B)(a_i, B)까지 이어진다. 또 위치 b1,,bmb_1, \ldots, b_m에 가로 울타리 mm개를 세웠고 (0<bi<B0 < b_i < B), 위치 bib_i의 울타리는 (0,bi)(0, b_i)에서 (A,bi)(A, b_i)까지 이어진다. 세로 울타리는 가로 울타리와 모두 교차하므로 밭은 (n+1)(m+1)(n+1)(m+1)개의 구역으로 나뉜다.

그런데 존은 울타리에 문을 내는 것을 완전히 잊었다. 소는 자기가 갇힌 구역을 벗어나 밭 전체를 돌아다니지 못한다. 존은 울타리 일부를 걷어내서 이 문제를 해결하려고 한다. 이웃한 구역 쌍을 골라 그 사이를 막고 있는 울타리를 전체 길이만큼 걷어내고, 이렇게 뚫은 통로만으로 소가 밭 어디든 갈 수 있게 만들려고 한다.

예를 들어 존이 다음과 같은 울타리 배치에서 시작한다고 하자.

+---+--+
|   |  |
+---+--+
|   |  |
|   |  |
+---+--+

그러면 이렇게 열 수 있다.

+---+--+
|      |
+---+  +
|      |
|      |
+---+--+

존이 걷어내야 하는 울타리의 최소 총 길이를 구하여라.

입력

첫째 줄에 AA, BB, nn, mm이 주어진다 (1A,B1091 \le A, B \le 10^9, 0n250000 \le n \le 25000, 0m250000 \le m \le 25000). 다음 nn개의 줄에 a1,,ana_1, \ldots, a_n이 한 줄에 하나씩 주어지고, 그 뒤 mm개의 줄에 b1,,bmb_1, \ldots, b_m이 한 줄에 하나씩 주어진다. aia_i는 서로 다르고 bib_i도 서로 다르다.

출력

걷어내야 하는 울타리의 최소 총 길이를 출력한다. 이 값은 32비트 정수 범위를 넘을 수 있다.