머나먼 나라 프로브니아(Frobnia)에서는 법원의 판결을 일반 시민으로 구성된 배심원단이 결정한다. 재판이 시작될 때마다 다음과 같은 방식으로 배심원단을 뽑는다. 먼저 시민들 가운데 무작위로 후보 풀을 구성한다. 이 풀의 각 후보에 대해 변호인 측과 검사 측이 각각 그 후보를 얼마나 선호하는지를 0부터 20까지의 점수로 매긴다. 0은 완전한 거부를, 20은 배심원으로 가장 이상적이라고 보는 것을 뜻한다.
판사는 이 두 점수를 바탕으로 배심원단을 선정한다. 공정한 재판을 위해 배심원단이 변호인 측이나 검사 측 어느 한쪽으로도 치우치지 않고 최대한 균형을 이루어, 양측 모두가 받아들일 수 있어야 한다.
이를 정확히 정의하면 다음과 같다. n명의 후보로 이루어진 풀이 주어지고, 각 후보 i에 대해 검사 측 점수 pi와 변호인 측 점수 di가 주어진다. 이 중에서 정확히 m명의 배심원을 선택해야 한다. m개의 원소를 갖는 부분집합 J⊆{1,…,n}에 대해 D(J)=∑k∈Jdk, P(J)=∑k∈Jpk 는 각각 이 배심원단의 변호인 측 총점과 검사 측 총점이다.
최적의 배심원단은 다음 규칙을 순서대로 적용하여 정한다.
이 세 규칙을 함께 적용하면 항상 정확히 하나의 배심원단이 결정된다. 이 선정 과정을 수행하는 프로그램을 작성하라.
입력은 여러 개의 배심원 선정 라운드로 이루어진다. 각 라운드는 두 정수 n 과 m 이 담긴 줄로 시작한다. n 은 후보 수, m 은 배심원 수이며 1≤n≤200, 1≤m≤20, 그리고 m≤n 을 만족한다. 이어지는 n 개의 줄에는 각각 두 정수 pi 와 di (후보 i 에 대한 검사 측 점수와 변호인 측 점수)가 주어지며 0≤pi,di≤20 이다. 라운드 사이는 빈 줄로 구분될 수 있다.
입력의 마지막은 첫 줄이 0 0 인 라운드로 끝나며, 이 종료 라운드는 처리하지 않는다.
각 라운드마다 Jury #r 이라는 줄을 출력한다. 여기서 r 은 라운드 번호(1,2,…)이다.
다음 줄에는 검사 측 총점과 변호인 측 총점을 정확히 다음 형식으로(검사 측을 먼저, 변호인 측을 나중에) 출력한다.
Best jury has value <P(J)> for prosecution and value <D(J)> for defence:
그 다음 줄에는 선택된 m 명의 후보 번호를 오름차순으로 출력하되, 각 번호 앞에 공백 하나를 붙인다.
연속한 라운드 사이에는 빈 줄을 하나 출력한다. 첫 라운드 앞과 마지막 라운드 뒤에는 빈 줄이 없다.