/**
 * 
 */
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.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class process implements Runnable {
	Thread t;
	int c=0,n=0,s=0,p=0;
	int[] sc;
	int res=0;
	String a="";
	process(int i,int a,int b,int e,int[] d) {
		c=(i+1);
		n=a;
		s=b;
		p=e;
		sc=d;
		t = new Thread(this);
		t.run();
	}

	public void run() {
		float avg=0;
		for(int i=0;i<n;++i)
		{
			avg=(float)sc[i]/3;
			if(avg==0 && p!=0)
			{
				sc[i]=99;
			}
			if((p-avg)>=1.5)
			{
				sc[i]=99;
			}
			else
			{
				if(avg>=p)
				{
					++res;
					a=a+sc[i]+" ";
					sc[i]=99;
				}
				if( (p-avg)<1 && (p-avg)>0 ) 
				{
					++res;
					a=a+sc[i]+" ";
					sc[i]=99;
				}
			}
		}
		int i=0;
		while(s>0 && i<n)
		{
			avg=(float)sc[i]/3;
			if( (p-avg)==1)
			{
				++res;
				--s;
				a=a+sc[i]+" ";
				sc[i]=99;
			}
			if( (p-avg)>1 && (p-avg)<1.5 )
			{
				++res;
				--s;
				a=a+sc[i]+" ";
				sc[i]=99;
			}
			++i;
		}
		
	}
	public void print()
	{
		System.out.println("Case #"+c+": "+res);
		//System.out.println(a);
		
	}

}

public class Main {
	public static void main(String[] args) throws Exception {
		StringTokenizer st;
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int t=Integer.parseInt(br.readLine());
		process[] pr=new process[t];
		for(int i=0;i<t;++i)
		{
			st=new StringTokenizer(br.readLine());
			int n=Integer.parseInt(st.nextToken());//number of Googlers
			int s=Integer.parseInt(st.nextToken());//number of surprising triplets of scores
			int p=Integer.parseInt(st.nextToken());//maximum number result of at least p
			int[] sc=new int[n];
			for(int j=0;j<n;++j)
			{
				sc[j]=Integer.parseInt(st.nextToken());
			}
			pr[i]=new process(i,n,s,p,sc);
		}

		for(int i=0;i<t;++i)
		{
			pr[i].t.join();
			pr[i].print();
		}
		
		
	}
}
