import java.util.Scanner;
import java.io.*;
class dance
{
  public static void main (String[] args) throws IOException
  { 
    File    inputData = new File("B-small-attempt0.in");
	File 	outputData= new File("Boutput.txt");
    Scanner scan = new Scanner( inputData );
	PrintStream print= new PrintStream(outputData);
    
	int t;
	int n,s,p,pi;
	t= scan.nextInt();
	for(int i=1;i<=t;i++)
	{
	n=scan.nextInt();	s=scan.nextInt();	p=scan.nextInt();
	int supTrip=0, notsupTrip=0;
	
	for(int j=0;j<n;j++)
	{
		pi=scan.nextInt();
		if(pi>(3*p-3))
		notsupTrip++;
		else if((pi>=(3*p-4))&&(pi<=(3*p-3))&&(pi>p))
		supTrip++;
	}
	
	if(s<=supTrip)
	notsupTrip=notsupTrip+s;
	else if(s>supTrip)
	notsupTrip= notsupTrip+supTrip;
	print.println("Case #"+i+": "+notsupTrip);
	}
  }
}
import java.io.*;
import java.util.*;

public class GoogleDancer {
	public static void main(String[] args) throws IOException
	{
		Scanner sc = new Scanner(new FileReader("Dancer.in"));
		PrintWriter pw = new PrintWriter(new FileWriter("Dancer.out"), true);
		int T = sc.nextInt();
		for (int c = 1; c<=T; c++)
		{
			int N = sc.nextInt();
			int S = sc.nextInt();
			int p = sc.nextInt();
			int[] points = new int[N];
			for (int d = 0; d < N; d++)
			{
				points[d] = sc.nextInt();
			}
			int num = calc(N, S, p, points);
			String x = String.format("Case #%d: %d", c, num);
			pw.println(x);
		}
		
		
		pw.close();
	}
	public static int calc(int N, int S, int p, int[] points)
	{
		int total = 0;
		int min = ((p-2)<0? 0 : p-2)*2 + p;
		for (Integer n : points)
		{
			
			if (n < min) continue;
			int avg = n/3;
			if (n%3 == 0)
			{
				if (avg >= p) total++;
				else if ((avg+1) >= p && S>0)
				{
					total++;
					S--;
				}
			}else if (n%3 == 1)
			{
				if ((avg+1) >= p)total++;
			}else
			{
				if ((avg+1) >= p) total++;
				else if ((avg+2)>= p && S > 0)
				{
					total++;
					S--;
				}
			}
		}
		return total;
	}
}
