package com.gcj.parser;

public class MaxPoints {

	public static int normal(int value){
		int toReturn = 0;
		switch (value) {
		case 0 : toReturn = 0 ; break;
		case 1 : toReturn = 1 ; break;
		case 2 : toReturn = 1 ; break;
		case 3 : toReturn = 1 ; break;
		case 4 : toReturn = 2 ; break;
		case 5 : toReturn = 2 ; break;
		case 6 : toReturn = 2 ; break;
		case 7 : toReturn = 3 ; break;
		case 8 : toReturn = 3 ; break;
		case 9 : toReturn = 3 ; break;
		case 10 : toReturn = 4 ; break;
		case 11 : toReturn = 4 ; break;
		case 12 : toReturn = 4 ; break;
		case 13 : toReturn = 5 ; break;
		case 14 : toReturn = 5 ; break;
		case 15 : toReturn = 5 ; break;
		case 16 : toReturn = 6 ; break;
		case 17 : toReturn = 6 ; break;
		case 18 : toReturn = 6 ; break;
		case 19 : toReturn = 7 ; break;
		case 20 : toReturn = 7 ; break;
		case 21 : toReturn = 7 ; break;
		case 22 : toReturn = 8 ; break;
		case 23 : toReturn = 8 ; break;
		case 24 : toReturn = 8 ; break;
		case 25 : toReturn = 9 ; break;
		case 26 : toReturn = 9 ; break;
		case 27 : toReturn = 9 ; break;
		case 28 : toReturn = 10 ; break;
		case 29 : toReturn = 10 ; break;
		case 30 : toReturn = 10 ; break;

		}

		return toReturn;
	}

	public static int surprising(int value){
		int toReturn = 0;
		switch (value) {
		case 0 : toReturn = 0 ; break;
		case 1 : toReturn = 1 ; break;
		case 2 : toReturn = 2 ; break;
		case 3 : toReturn = 2 ; break;
		case 4 : toReturn = 2 ; break;
		case 5 : toReturn = 3 ; break;
		case 6 : toReturn = 3 ; break;
		case 7 : toReturn = 3 ; break;
		case 8 : toReturn = 4 ; break;
		case 9 : toReturn = 4 ; break;
		case 10 : toReturn = 4 ; break;
		case 11 : toReturn = 5 ; break;
		case 12 : toReturn = 5 ; break;
		case 13 : toReturn = 5 ; break;
		case 14 : toReturn = 6 ; break;
		case 15 : toReturn = 6 ; break;
		case 16 : toReturn = 6 ; break;
		case 17 : toReturn = 7 ; break;
		case 18 : toReturn = 7 ; break;
		case 19 : toReturn = 7 ; break;
		case 20 : toReturn = 8 ; break;
		case 21 : toReturn = 8 ; break;
		case 22 : toReturn = 8 ; break;
		case 23 : toReturn = 9 ; break;
		case 24 : toReturn = 9 ; break;
		case 25 : toReturn = 9 ; break;
		case 26 : toReturn = 10 ; break;
		case 27 : toReturn = 10 ; break;
		case 28 : toReturn = 10 ; break;
		case 29 : toReturn = 10 ; break;
		case 30 : toReturn = 10 ; break;

		}
		return toReturn;
	}

}

package codejam;

import java.io.*;
import java.util.*;

public class DancingWithGooglers {
	
	public static void main(String[] args) throws IOException {
		BufferedReader inp = new BufferedReader(new InputStreamReader(System.in));
		int noOfTestCases = Integer.parseInt(inp.readLine());
		StringTokenizer str;
		int noOfGooglers;
		int noOfSurprises;
		int bandWidth;
		int currScore;
		ArrayList<Integer> results = new ArrayList<Integer>();
		
		for(int i=0;i<noOfTestCases;i++)
		{
			int num = 0;
			str = new StringTokenizer(inp.readLine());
			noOfGooglers = Integer.parseInt(str.nextToken());
			noOfSurprises = Integer.parseInt(str.nextToken());
			bandWidth = Integer.parseInt(str.nextToken());
			if(bandWidth == 0)
			{
				results.add(noOfGooglers);
				continue;
			}
			for(int j=0;j<noOfGooglers;j++)
			{
				 currScore = Integer.parseInt(str.nextToken());
				 if(currScore > (bandWidth - 1)*3)
				 {
					 num++;
					 continue;
				 }
				 if(bandWidth == 1)
					 continue;
				 if(noOfSurprises > 0 && currScore > ((bandWidth - 2)*3 + 1))
				 {
					 num++;
					 noOfSurprises--;
				 }
			}
			results.add(num);
		}
		
		ListIterator<Integer> itr = results.listIterator();
		int i=1;
		while(itr.hasNext())
		{
			System.out.println("Case #" + i + ": " + itr.next());
			i++;
		}
	}
}
