시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB2000.000%

문제

In Brutopia, a far-away country, the verdicts in court trials are determined by a jury consisting of members of the general public. Every time a trial is set to begin, a jury has to be selected, which is done as follows. First, several people are drawn randomly from the public. For each person in the pool, defense and prosecution assign a grade from 0 to 20 indicating their preference for this person. 0 means total dislike, 20 on the other hand means that this person is considered ideally suited for the jury.

Based on the grades of the two parties, the judge selects the jury. In order to ensure a fair trial, the tendencies of the jury to favour either defense or prosecution should be as balanced as possible. The jury therefore has to be chosen in a way that is satisfactory to both parties.

We will now make this more precise: given a pool of n potential jurors and two values di (the defense’s value) and pi (the prosecution’s value) for each potential juror i, youaretoselectajuryofmpersons.If J is a subset of {1,...,n} with m elements, then D(J) = ∑k∈J dk and P(J) = ∑k∈J pk are the total values of this jury for defense and prosecution.

For an optimal jury J , the value |D(J) − P(J)| must be minimal. If there are several juries with minimal |D(J) − P(J)|, one which maximizes D(J) + P(J) should be selected since the jury should be as ideal as possible for both parties. If more than one jury fits these specifications, choose the one with the lowest number for the last jury member; i.e., jury “10 11 12” is preferred to “1 2 13”.

You are to write a program that implements the jury selection process and chooses an optimal jury given a set of candidates.

입력

The input file contains several jury selection rounds. Each round starts with a line containing the integers n and m. n is the number of candidates and m the number of jury members. These values will satisfy 1 ≤ n ≤ 200, 1 ≤ m ≤ 20 and, of course, m ≤ n. The following n lines each contain two integers pi and di for i = 1,...,n. A blank line separates each round from the next.

The file ends with a round that has n = m = 0.

출력

For each round, output a line containing the number of the jury selection round (“Jury #1”, “Jury #2”, etc.).

On the next two lines print the values D(J) and P(J) of your jury as shown below and on another line print the numbers of the m chosen candidates in ascending order. Output a blank before each individual candidate number.

Output an empty line after each test case.

예제 입력 1

4 2
1 2
2 3
4 1
6 2

0 0

예제 출력 1

Jury #1
Best jury has value 6 for prosecution
and 4 for defence:
 2 3

힌트

If your solution is based on an inefficient algorithm, it may not execute in the allotted time.