개미의 복수 2

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

문제

둘레가 LL인 원형 레일이 있다. 경근이는 레일을 LL등분해 각 지점에 시계방향으로 00부터 L1L-1까지 번호를 붙였다. 그리고 그중 몇 지점을 골라 시계방향으로 도는 개미 NN마리와 반시계방향으로 도는 개미 MM마리를 올려놓았다. 한 지점에 개미가 두 마리 이상 있는 경우는 없다.

레일 위의 개미는 모두 1초에 거리 1만큼 움직인다. 레일은 개미 한 마리만 지나갈 정도로 폭이 좁아서, 서로 반대 방향으로 오던 두 개미가 한 지점에서 부딪치면 그 즉시 둘 다 방향을 반대로 바꾼다. 개미는 크기가 없는 점이라서 두 마리의 위치가 정확히 같아지는 순간에만 부딪친다.

경근이는 개미를 모두 구별한다. 모든 개미가 처음 있던 지점으로 돌아와 처음과 같은 방향으로 움직이게 되려면 최소 몇 초가 걸리는지 구하는 프로그램을 작성하라.

입력

첫째 줄에 원형 레일의 둘레 LL, 시계방향으로 도는 개미의 수 NN, 반시계방향으로 도는 개미의 수 MM이 공백으로 구분되어 주어진다. (1L10121 \le L \le 10^{12}, 1N1 \le N, 1M1 \le M, N+M106N + M \le 10^6)

둘째 줄에 시계방향으로 도는 개미가 있는 지점 NN개가 공백으로 구분되어 주어진다.

셋째 줄에 반시계방향으로 도는 개미가 있는 지점 MM개가 공백으로 구분되어 주어진다.

모든 지점은 00 이상 L1L-1 이하의 정수이고, 주어지는 N+MN + M개의 지점은 서로 다르다. 지점은 정렬되어 있지 않을 수도 있다.

출력

첫째 줄에 모든 개미가 처음 있던 지점에서 처음과 같은 방향으로 움직이게 되기까지 필요한 최소 시간을 초 단위로 출력한다.

노트

첫 번째 예제에서는 두 개미가 0.5초와 1.5초에 부딪치고, 2초가 되면 처음과 같은 상태가 된다.