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;
    }
}


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

public class DancingWithGooglers
{
	public static void main(String args[]) throws IOException
	{
		int case_no;
		String result = "";
		File inputFile = new File(".in");
		FileInputStream fin = new FileInputStream(inputFile);
		Scanner in = new Scanner(fin);

		PrintWriter out = new PrintWriter(new FileWriter(".out", true));

		case_no = in.nextInt();

		for( int i = 0; i < case_no; i++ )
		{
			int num_googlers, t_surprise, point, max_number_overp = 0, number_overp_temp = 0;
			PriorityQueue<Integer> _pq = new PriorityQueue<Integer>();
			result += "Case #"+ (i+1) + ": ";
			num_googlers = in.nextInt();
			t_surprise = in.nextInt();
			point = in.nextInt();

			for( int j = 0; j < num_googlers; j++ )
			{
				_pq.add(new Integer(in.nextInt()));
			}



			while( _pq.size()!= 0 )
			{
				int temp = _pq.poll().intValue();

				if( (temp <= 3*(point-1))&&(temp>=(3*(point-1)-1)))
				{
					if( (number_overp_temp < t_surprise)&&(temp > 0) )
					{
						number_overp_temp++;
						max_number_overp++;
					}
				}
				else if (temp > 3*(point-1))
				{
					max_number_overp++;

				}
			}

			result += "" + max_number_overp;
			out.println(result);
			result = "";
		}
		in.close();
		out.close();

	}
}
