import java.util.LinkedList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int ok=1;
while(sc.hasNext()) {
int a=sc.nextInt(),b=sc.nextInt();
if(a==b && b==0)break;
int add[]=new int[205];int sub[]=new int[205];
for (int i = 1; i <= a; i++)
{
int x=sc.nextInt(),y=sc.nextInt();add[i]=x+y;sub[i]=x-y;
}
int dp[][]=new int[25][820];
path path[][]=new path[25][820];
for (int i = 0; i <25; i++)
for (int j = 0; j <820; j++)
{
dp[i][j]=-1;path[i][j]=new path();
}
int fix=20*b;
dp[0][fix]=0;
for (int i = 1; i <=a; i++)
{
for (int j = b-1; j >=0; j--)
{
for (int k = 0; k <=2*fix; k++)
{
if (dp[j][k]>=0)
{
if (dp[j][k]+add[i]>dp[j+1][k+sub[i]])
{
dp[j+1][k+sub[i]]=dp[j][k]+add[i];
path[j+1][k+sub[i]].x.clear();
for(int xx:path[j][k].x) path[j+1][k+sub[i]].x.add(xx);
path[j+1][k+sub[i]].x.add(i);
}
}
}
}
}
int kk;
for(kk=0;kk<=fix;kk++)
if (dp[b][fix+kk]>=0||dp[b][fix-kk]>=0)
{
break;
}
int S=dp[b][fix+kk]>dp[b][fix-kk]?fix+kk:fix-kk;
int A=dp[b][S];
int P =(A+(S-fix))/2;
int D=(A-(S-fix))/2;
System.out.println("Jury #"+ok);ok++;
System.out.printf("Best jury has value %d for prosecution and value %d for defence:\n",P,D);
for (int i:path[b][S].x)System.out.println(i);
System.out.println();
}
}
}
class path{
public LinkedList<Integer> x=new LinkedList<Integer>();
}