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;
            }
        }
    }
}
/*
 * Program Name :- B.java
 * Author :- Happy Mittal
 * Created on 14 April, 2012
 *
 * 
 */

package googlecodejam11;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.Arrays;

public class B {
    /** Creates a new instance of B */
    public B() {
        try{
            // Open the input file 
            //FileInputStream finstream = new FileInputStream("E:\\B-small-attempt0.in");
             FileInputStream finstream = new FileInputStream("E:\\B-large.in");
            //FileInputStream finstream = new FileInputStream("E:\\test-input.in");
            // Get the object of DataInputStream
            DataInputStream in = new DataInputStream(finstream);
                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                
             // Create a output file 
            //FileWriter foutstream = new FileWriter("E:\\B-small-output.in");
             FileWriter foutstream = new FileWriter("E:\\B-large-output.in");
              //FileWriter foutstream = new FileWriter("E:\\test-output.in");
                BufferedWriter bw = new BufferedWriter(foutstream);
                
            br.readLine(); // read the first line it contains no of cases
            String strLine;
            int caseno = 1;
            //Read File Line By Line
           // strLine = br.readLine();
            while ((strLine = br.readLine()) != null)   {
              // Print the content on the console
             // System.out.println (strLine);
              strLine = strLine.trim();
              int result = NoOFTriplets(strLine); 
              //System.out.println (result);
              String netresult = "Case #" + caseno + ": " + result ;
              bw.write(netresult);
              bw.newLine();
              caseno ++;
            }
            
            
            //Close the input stream
            in.close();
            //Close the output stream
            bw.close();
       
            }catch (Exception e){//Catch exception if any
              System.err.println("Error: " + e.getMessage());
            }
    }
     public static void main(String[] args) {
        // TODO code application logic here
        B b1 = new B();
           }
     public int NoOFTriplets(String str){
            String input[] = str.split(" ");
            int MaxGooglers = 0 ;
            int N = Integer.parseInt(input[0]);
            int S = Integer.parseInt(input[1]);
            int p = Integer.parseInt(input[2]);
           // int value[] = new int[N];
            for(int i=0;i<N;i++)
            {
                int score = Integer.parseInt(input[i+3]);
                if(score <= 1) 
                {
                    if(score >= p) MaxGooglers ++;
                    continue;
                }
                int div = score   / 3 ;
                int rem =  score % 3;
                //System.out.println ("Values  " + div + " --   " + rem);
                if(rem != 0 ) div ++;
                if (div >= p)
                {
                    MaxGooglers ++;
                    // System.out.println ("Hello1");
                }
                else if(S > 0 && rem != 1 && div + 1 >= p )
                {
                    // System.out.println (S + "Hello2");    
                    MaxGooglers ++;
                        S--;
                }
            }
            
           return MaxGooglers;
     }
}
