import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*;

public class b {
    public static void main(String[] args) {
        Scanner sc = new Scanner(new BufferedInputStream(System.in));

        int T = sc.nextInt();

        for (int casenumber = 1; casenumber <= T; ++casenumber) {

            int n = sc.nextInt();
            int s = sc.nextInt();
            int p = sc.nextInt();

            int[] ts = new int[n];
            for (int i = 0; i < n; ++i)
                ts[i] = sc.nextInt();

            int thresh1 = (p == 1 ? 1 : (3 * p - 4));
            int thresh2 = (3 * p - 2);

            int count1 = 0, count2 = 0;

            for (int i = 0; i < n; ++i) {
                if (ts[i] >= thresh2) {
                    ++count2;
                    continue;
                }
                if (ts[i] >= thresh1) {
                    ++count1;
                }
            }

            if (count1 > s) {
                count1 = s;
            }

            System.out.format("Case #%d: %d%n", casenumber, count1 + count2);
        }
    }
}

package cj2;

import dancingwiththegooglers.ScoreAnalyzer;
import edu.uwec.cs.genacje.codejam.speakingintongues.GooglereseTranslator;
import edu.uwec.cs.genacje.codejam.utilities.objects.IoMgr;
import edu.uwec.cs.genacje.codejam.utilities.objects.StringFormatter;

/**
 *
 * @author James Genac
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        long totalTime = System.currentTimeMillis();
        solveDancingWithTheGooglers();
       System.out.println("Total time to solve: " + (System.currentTimeMillis() - totalTime) + " ms.");

    }

    private static void solveDancingWithTheGooglers() {
        IoMgr io = new IoMgr("B-small-attempt0.in");

        int linecount = 1;
        long start = 0;
        io.rls(); // eat first line

        ScoreAnalyzer scoreAnalyzer = null;

        while (io.ready()) {
            scoreAnalyzer = new ScoreAnalyzer(io.rlia(" "));


            start = System.currentTimeMillis();

            io.wlf("Case #"+linecount+": " + scoreAnalyzer.getMaxNumOfHighScoringDancers());
            System.out.println("Case " + linecount + " took " + (System.currentTimeMillis()-start) + " ms.");
            linecount++;
        }


       io.close();
    }

    private static void solveSpeakingInTongues() {
        IoMgr io = new IoMgr("A-small-attempt0.in");

            int linecount = 1;
            long start = 0;
            io.rls(); // eat first line
            String in = "";
            long totalTime = System.currentTimeMillis();

            while (io.ready()) {
                in = io.rls();


                start = System.currentTimeMillis();

                io.wlf("Case #"+linecount+": " + GooglereseTranslator.translateString(in));
                System.out.println("Case " + linecount + " took " + (System.currentTimeMillis()-start) + " ms.");
                linecount++;
            }


           io.close();
    }
}


