/**
 * 
 */
package pandit.codejam;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Scanner;

/**
 * @author Manu Ram Pandit
 * 
 */
public class DancingWithGooglersUpload {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		FileInputStream fStream = new FileInputStream(
				"input.txt");

		Scanner scanner = new Scanner(new BufferedInputStream(fStream));
		Writer out = new OutputStreamWriter(new FileOutputStream("output.txt"));

		int T = scanner.nextInt();
		int N,S,P,ti;
		int counter = 0;
		for (int count = 1; count <= T; count++) {
			N=scanner.nextInt();
			S = scanner.nextInt();
			counter = 0;
			P = scanner.nextInt();
			for(int i=1;i<=N;i++){
				ti=scanner.nextInt();
				if(ti>=(3*P-2)){
					counter++;
					continue;
				}
				else if(S>0){
					if(P>=2 && ((ti==(3*P-3)) ||(ti==(3*P-4)))) {
					S--;
					counter++;
					continue;
					}
				}
				
			}
			// System.out.println("Case #" + count + ": " + counter);
			out.write("Case #" + count + ": " + counter + "\n");
		}
		fStream.close();
		out.close();

	}

}

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) throws Exception {
		Scanner s = new Scanner(new File("input"));
		BufferedWriter w = new BufferedWriter(new FileWriter(new File("output")));
		int cases = s.nextInt();
		for (int i = 0; i < cases; i++) {
			s.nextLine();
			int n = s.nextInt();
			int surprising = s.nextInt();
			int target = s.nextInt();


			int answer = 0;
			if (target == 0) {
				answer = n;
			} else {
				int lowestBound = target * 3 - 4;
				ArrayList<Integer> l = new ArrayList<Integer>();

				for (int j = 0; j < n; j++) {
					int si = s.nextInt();
					if (si >= lowestBound && si >= target) {
						l.add(si);
					}
				}

				Collections.sort(l);
				Collections.reverse(l);

				for (int si : l) {
					int roundedAverage = si / 3;
					int mod = si % 3;
					if (mod == 0) {
						if (roundedAverage >= target) {
							answer++;
						} else if (roundedAverage + 1 == target && surprising > 0) {
							answer++;
							if (--surprising == 0) {
								break;
							}
						}
					} else if (mod == 1) {
						answer++;
					} else {
						if (roundedAverage + 1 >= target) {
							answer++;
						} else if (roundedAverage + 2 >= target && surprising > 0) {
							answer++;
							if (--surprising == 0) {
								break;
							}
						}
					}
				}
			}

			w.write("Case #");
			w.write(String.valueOf(i + 1));
			w.write(": ");

			w.write(String.valueOf(answer));

			w.write("\n");
		}
		w.close();
	}

}
