import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;


public class GooglersDancer {

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		InputStreamReader converter = new InputStreamReader(System.in);
		BufferedReader in = new BufferedReader(converter);
		if (in == null) {
		      return;
		    }
		String numTest = in.readLine();
		int maxCases = Integer.valueOf(numTest);
		for(int i=1;i<= maxCases;i++){
			String linea = in.readLine();
			String[] datos = linea.split(" ");
			Integer googlers = Integer.valueOf(datos[0]);
			Integer sospechosos = Integer.valueOf(datos[1]);
			Integer p = Integer.valueOf(datos[2]);
			Integer puntuacion;
			Integer personas = 0;
			ArrayList<Integer> puntuaciones = new ArrayList<Integer>();
			for(int j=0;j<googlers;j++){
				puntuacion = Integer.valueOf(datos[3+j]);
				puntuaciones.add(puntuacion);
			}
			Integer[] pOrdenado = null;
			pOrdenado = (Integer[]) puntuaciones.toArray(new Integer[puntuaciones.size()]);
			Arrays.sort(pOrdenado);
			int j;
			for(j=pOrdenado.length-1;j>=0;j--){
				if(pOrdenado[j] >= p*3-2){
					personas += 1;
				}else{
					break;
				}
			}
			int posibles = j+1-sospechosos;
			for(;j>=posibles && j>= 0;j--){
				if(pOrdenado[j] >= p*3-4 && pOrdenado[j] > p){
					personas += 1;
				}else{
					break;
				}
			}
			System.out.println("Case #"+i+": "+personas);
		}
	}

}

import java.util.*;

class Dancing
{

	public static void main(String[] args)
	{
		int[] dancers = new int[100];
		int N;
		int surprising;
		int target;
		int i;
		int result;
		int optimal;
		int n;
		int T;
		int t;
		Scanner myInput = new Scanner(System.in);
		T = myInput.nextInt();
		for (t=1; t<=T; t++)
		{
			result=0;
			N = myInput.nextInt();
			surprising = myInput.nextInt();
			target = myInput.nextInt();
			for (i=0; i<N; i++)
				dancers[i] = myInput.nextInt();
			Arrays.sort(dancers,0,N);
			for (i=N-1; i>=0; i--)
			{
				optimal = 0;
				n=dancers[i];
				//System.out.println(n);
				if (surprising>0)
				{
					if (n%3==0) 
					{
						optimal=n/3;
						if (((optimal-1>=0)&&(optimal<target)) && (optimal+1>=target))
						{
							optimal++;
							surprising--;
						}
					}
					else
						if (n%3==1)
						{
							optimal=(n/3)+1;
						}
						else
							if (n%3==2)
							{
								optimal=(n/3)+1;
								if ((optimal<target) && (optimal+1>=target))
								{
									optimal++;
									surprising--;
								}
							}

					if (optimal>=target) result++;

				}
				else
				{
					if (n%3==0) optimal=n/3;
					else
						optimal = (n/3)+1;
					if (optimal>=target) result++;
				}
			}
			System.out.println("Case #"+t+": "+result);
		}
	}

}
