피라미드 기단 2

격자에 놓는 정사각형 기지 중 겹치는 장애물 제거 비용 합이 예산을 넘지 않는 가장 큰 한 변 길이를 구합니다.

보통7이분 탐색세그먼트 트리기하아직 제출이 없습니다시간 제한5초메모리 제한128 MB

문제

새 피라미드를 세울 터 가운데 예산으로 감당할 수 있는 가장 큰 터를 찾으려 한다. 부지 조사 결과는 M×NM \times N 크기의 정사각형 칸 격자로 정리되어 있다. 피라미드의 기단은 격자의 변과 평행한 정사각형이어야 한다.

조사에서 장애물 PP개를 찾았다. 각 장애물은 격자의 변과 평행한 직사각형이고, 서로 겹칠 수 있다. 피라미드를 세우려면 기단이 덮는 칸에서 장애물을 모두 없애야 한다. ii번 장애물을 치우는 비용은 CiC_i다. 장애물은 통째로만 치울 수 있고, 일부만 치우는 것은 불가능하다. 한 장애물을 치워도 그것과 겹친 다른 장애물은 그대로 남는다.

부지의 크기 MMNN, 장애물 PP개의 위치와 제거 비용, 예산 BB가 주어질 때, 제거 비용의 합이 BB를 넘지 않으면서 만들 수 있는 기단 한 변의 최대 길이를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 MMNN이 공백 하나로 구분되어 주어진다. (1M,N1061 \le M, N \le 10^6)

둘째 줄에 예산 BB가 주어진다. (0<B2×1090 < B \le 2 \times 10^9)

셋째 줄에 장애물의 개수 PP가 주어진다. (1P300001 \le P \le 30000)

다음 PP개의 줄에 장애물의 정보가 한 줄에 하나씩 주어진다. 이 가운데 ii번째 줄은 ii번 장애물을 나타내고, 다섯 정수 Xi1X_{i1}, Yi1Y_{i1}, Xi2X_{i2}, Yi2Y_{i2}, CiC_i가 공백 하나로 구분되어 주어진다. 앞의 두 값은 장애물에서 가장 아래쪽 가장 왼쪽 칸의 좌표, 그다음 두 값은 가장 위쪽 가장 오른쪽 칸의 좌표, 마지막 값은 그 장애물을 치우는 비용이다. 격자에서 가장 아래쪽 가장 왼쪽 칸의 좌표는 (1,1)(1, 1)이고, 가장 위쪽 가장 오른쪽 칸의 좌표는 (M,N)(M, N)이다. (1Xi1Xi2M1 \le X_{i1} \le X_{i2} \le M, 1Yi1Yi2N1 \le Y_{i1} \le Y_{i2} \le N, 1Ci70001 \le C_i \le 7000)

출력

첫째 줄에 만들 수 있는 기단 한 변의 최대 길이를 정수 하나로 출력한다. 피라미드를 전혀 세울 수 없으면 00을 출력한다.

힌트

그림은 한 변의 길이가 44인 기단을 놓을 수 있는 두 위치를 보여준다.