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

public class DancingWithTheGooglers
{
    public DancingWithTheGooglers()
    {
        Scanner inFile = null;
        try
        {
            inFile = new Scanner(new File("inputB.txt"));
        }
        catch(Exception e)
        {
            System.out.println("Problem opening input file. Exiting...");
			System.exit(0);
        }
        int t = inFile.nextInt();
        
        int [] results = new int [t];
        DancingWithTheGooglersMax [] rnc = new DancingWithTheGooglersMax[t];
        
        int i, j;
        int [] scores;
        int s, p;
        for(i = 0; i < t; i++)
        {
            scores = new int [inFile.nextInt()];
            s = inFile.nextInt();
            p = inFile.nextInt();
            for(j = 0; j < scores.length; j++)
                scores[j] = inFile.nextInt();
            
            rnc[i] = new DancingWithTheGooglersMax(i, scores, s, p, results);
            rnc[i].start();
        }
        inFile.close();
        
        boolean done = false;
        
        while(!done)
        {
            done = true;
            for(i = 0; i < t; i++)
                if(rnc[i].isAlive())
                {
                    done = false;
                    break;
                }
        }
        
        PrintWriter outFile = null;
        try
        {
            outFile = new PrintWriter(new File("outputB.txt"));
        }
        catch(Exception e)
        {
            System.out.println("Problem opening output file. Exiting...");
			System.exit(0);
        }
        
        for(i = 0; i < results.length; i++)
            outFile.printf("Case #%d: %d\n", i+1, results[i]);
        outFile.close();
    }
    
    public static void main(String [] args)
    {
        new DancingWithTheGooglers();
    }
    
    private class DancingWithTheGooglersMax extends Thread
    {
        int id;
        int s, p;
        int [] results, scores;
        
        public DancingWithTheGooglersMax(int i, int [] aScores, int aS, int aP,int [] res)
        {
            id = i;
            s = aS;
            p = aP;
            results = res;
            scores = aScores;
        }
        
        public void run()
        {
            int a = 0, b = 0;
            
            if(p == 0)
                results[id] = scores.length;
            else if(p == 1)
            {
                int y;
                y = 3*p - 3;
                
                for(int i = 0; i < scores.length; i++)
                    if(scores[i] > y)
                        a++;
                    else if(scores[i] > 0)
                        b++;
                
                b = Math.min(b, s);
                results[id] = a+b;
            }
            else
            {
                int y, z;
                y = 3*p - 3;
                z = 3*p - 5;
                
                for(int i = 0; i < scores.length; i++)
                    if(scores[i] > y)
                        a++;
                    else if(scores[i] > z)
                        b++;
                
                b = Math.min(b, s);
                results[id] = a+b;
            }
        }
    }
}
import java.lang.*;
import java.util.*;
import java.io.*;
class codejam2
{
	public static boolean check(int[] ar){
		if(ar[2]-ar[1]<3 && ar[2]-ar[0]<3 && ar[0]>=0) return true;
		else return false;
	}

	public static boolean sur(int[] ar){
		if(ar[2]-ar[0]==2) return true;
		else return false;
	}

	public static int mainHelper(int n1,int s1,int p1,int[] p2){
		int n=n1;
		int s=s1;
		int p=p1;
		int ans=0;
		int[] points=p2;
		int[][] a =new int[n+1][3];
		for(int i=1;i<=n;i++){
			for(int j=0;j<3;j++){
				a[i][j]=points[i]/3;
			}
			if(points[i]%3==1) a[i][2]+=1;
			else if(points[i]%3==2){
				a[i][2]+=1;
				a[i][1]+=1;
			}
			
		}
		java.util.Arrays.sort(a[1]);
		for(int i=1;i<=n;i++){
			while(check(a[i])){
				if(a[i][2]>= p){
					if(sur(a[i])){
						if(s>0){ s-=1; ans+=1;}
						}
					else ans+=1;
					break;
				}
				else{
					int[] temp=a[i];
					temp[2]+=1;
					temp[1]-=1;
					java.util.Arrays.sort(temp);
					if(check(temp)) a[i]=temp;
					else break;

				}
			}
		}
		return ans;

	}

	public static void main(String[] args) 
	{
		//N S p .......3 1 5 15 13 11
		try{
			BufferedReader in=new BufferedReader(new FileReader("input2.txt"));
			BufferedWriter out=new BufferedWriter(new FileWriter("output2.txt"));
			int z=Integer.parseInt(in.readLine());
			for(int j=0;j<z;j++){
				String str=in.readLine();
				StringTokenizer st=new StringTokenizer(str);
				int n=Integer.parseInt(st.nextToken());
				int s=Integer.parseInt(st.nextToken());
				int p=Integer.parseInt(st.nextToken());
				int[] p2=new int[n+1];
				for(int i=1;i<=n;i++){
					p2[i]=Integer.parseInt(st.nextToken());
				}
				out.write("Case #"+(j+1)+": "+mainHelper(n,s,p,p2)+"\n");
			}
			out.close();
			in.close();
		}
		catch(IOException e){}


	}
}
