import java.util.*;

public class B {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        B th = new B();
        for (int i = 0; i < T; i++) {
            int n = sc.nextInt();
            int s = sc.nextInt();
            int p = sc.nextInt();
            int[] t = new int[n];
            for (int j = 0; j < n; j++) {
                t[j] = sc.nextInt();
            }
            int c = th.getAnswer(s,p,t);
            System.out.println("Case #" + (i+1) + ": " + c);
        }
    }
    public int getAnswer(int s, int p, int[] t) {
        int A1 = p + p-1+p-1;
        int A2 = p + p-2+p-2;
        if (A1 < 0)
            A1 = 0;
        if (A2 < 0)
            A2 = 1;
        int remain = s;
        int count = 0;
        int n = t.length;
        for (int i = 0; i < n; i++) {
            if (t[i] >= A1) {
                count++;
            } else if (t[i] < A1 && t[i] >= A2) {
                if (remain > 0) {
                    remain--;
                    count++;
                }
            }
        }
        return count;
    }
}




///REMOVE ALL OUTPUT AND USE STRINGTOKENIZER!


/*
ID: mfranzs1
LANG: JAVA
TASK: DancingWithTheGooglers
*/
import java.io.*;
import java.util.*;

public class DancingWithTheGooglers {
	static BufferedReader f;
	public static void main (String [] args) throws IOException {
		long unixTime = System.currentTimeMillis();
		// Use BufferedReader rather than RandomAccessFile; it's much faster
		f = new BufferedReader(new FileReader("DancingWithTheGooglers.in"));
	                                                  // input file name goes above
	    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("DancingWithTheGooglers.out")));

	    
	    int lines=Integer.parseInt(f.readLine());
	    
	    for(int i=0;i<lines;i++){
	    	StringTokenizer st = new StringTokenizer(f.readLine()," ");
	    	int bestOfAtLeastP=0;
	    	int numGooglers=Integer.parseInt(st.nextToken());
	    	int suprising=Integer.parseInt(st.nextToken());
	    	int p=Integer.parseInt(st.nextToken());
	    	int suprisingLeft=suprising;
	    	for(int g=0;g<numGooglers;g++){
	    		int total = Integer.parseInt(st.nextToken());
	    		//System.out.println(total+" "+Math.ceil(total/3D)+" "+p+" "+((total-p)/2D));
	    		if(Math.ceil(total/3D)>=p){
	    			bestOfAtLeastP++;
	    		}else{
	    			//Has to be suprising
	    			if(total>=p){
		    			if(suprisingLeft>0){
		    				if((total-p)/2D>=p-2){
			    				suprisingLeft--;
			    				bestOfAtLeastP++;
		    				}
		    			}
	    			}
	    		}
	    	}
	    	System.out.println("Case #"+(i+1)+": "+bestOfAtLeastP);
	    	out.println("Case #"+(i+1)+": "+bestOfAtLeastP);
	    }
	    
	    out.close();                                  // close the output file
	    
	    //System.out.println("Time elapsed (ms): "+(System.currentTimeMillis()-unixTime));
	    
	    System.exit(0);                               // don't omit this!
	  }
}