수업 시간표

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

문제

보이체흐 씨는 새 사업으로 토요 해킹 학교(SSH)를 열고 직접 교장을 맡기로 했다. 교육부가 승인한 교육 과정을 짜 두었고, 교사 nn명을 채용했으며, 근처 소방서에서 강의실 ss개를 빌렸고, 이제 kk개 반의 학생을 모집하려 한다.

개교하기 전에 먼저 시간표를 짜야 한다. 교장인 보이체흐 씨는 첫 교시부터 마지막 학생이 떠날 때까지 학교에 있어야 하므로, 전체 시간표가 되도록 적은 교시 안에 끝나기를 바란다.

이 학교에서는 pp개의 과목을 가르친다. 각 과목에는 그 과목을 강의할 교사 한 명과 수업을 들을 반 하나가 배정되어 있다. 매주 토요일마다 각 과목은 정확히 한 교시씩 진행된다.

같은 교시에는 다음 규칙이 적용된다.

  • 한 교사는 한 과목만 강의할 수 있다.
  • 한 반은 한 과목만 들을 수 있다.
  • 한 강의실에서는 한 수업만 진행할 수 있다(따라서 동시에 최대 ss개의 과목이 진행된다).

한 교사가 같은 반에게 서로 다른 여러 과목을 가르칠 수도 있음에 유의하라.

예를 들어 SSH에 교사 22명, 반 22개, 과목 66개가 있고, 각 과목을 (교사 번호, 반 번호) 쌍으로 나타내면 (1, 1), (1, 1), (1, 2), (2, 2), (2, 2), (2, 2)라고 하자. 강의실이 하나뿐이면 어떤 두 수업도 동시에 진행할 수 없으므로 교장은 66교시가 필요하다. 강의실이 둘이면 44교시로 줄일 수 있다. 최적의 시간표 한 가지는 다음과 같다.

교시강의실 1강의실 2
1(1, 2)-
2(2, 2)-
3(1, 1)(2, 2)
4(1, 1)(2, 2)

따라서 최소 교시 수는 44이다.

당신의 과제는 보이체흐 씨의 시간표에 필요한 이 최소 교시 수를 구하는 것이다.

입력

첫째 줄에 네 정수 nn, kk, pp, ss가 공백 하나로 구분되어 주어진다(1n,k,p,s10001 \le n, k, p, s \le 1000). 각각 교사 수, 반 수, 과목 수, 사용할 수 있는 강의실 수를 뜻한다.

다음 pp개의 줄에는 각 과목이 하나씩 설명된다. 그중 ii번째 줄에는 두 정수 nin_i, kik_i가 주어진다(1nin1 \le n_i \le n, 1kik1 \le k_i \le k). 각각 ii번째 과목을 강의할 교사와 그 수업을 듣는 반을 뜻한다.

출력

한 정수 GG를 출력한다. 이는 교장이 매주 토요일 학교에서 보내야 하는 최소 교시 수, 즉 교사, 반, 강의실 규칙을 어기지 않고 모든 과목을 배치할 수 있는 가장 작은 교시 수이다.

(SSH의 한 교시가 반드시 45분일 필요는 없으므로 GG는 꽤 클 수 있다.)