/**
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: 3/3/12
 * Time: 11:00 AM
 * To change this template use File | Settings | File Templates.
 */

import SRMLib.MathLibrary;
import SRMLib.TestSRMLib;
import com.sun.org.apache.bcel.internal.generic.F2D;

import java.io.*;
import java.util.*;
import java.util.zip.Inflater;

public class SRM {
    public static void main(String[] args) throws IOException {
        //TestSRMLib.run();
        codeJam1.main();

        return;
    }
}
class codeJam1 {
    public static void main() throws IOException {
        String inputPath = "E:\\input.txt";
        String outputPath = "E:\\output.txt";
        BufferedReader input = new BufferedReader(new FileReader(inputPath));
        BufferedWriter output = new BufferedWriter(new FileWriter(outputPath));

        String line;
        line = input.readLine();
        int T = Integer.parseInt(line);
        for (int i = 1; i <= T; ++i) {
            line = input.readLine();
            String[] words = line.split(" ");
            int N = Integer.parseInt(words[0]);
            int S = Integer.parseInt(words[1]);
            int p = Integer.parseInt(words[2]);
            int n = 0;
            int res = 0;

            for (int j = 3; j < words.length; ++j) {
                if (p == 0) {
                    res++;
                    continue;
                }

                int t = Integer.parseInt(words[j]);
                if (p == 1) {
                    if (t > 0)
                        res++;
                    continue;
                }
                if (t >= 3 * p - 2)
                    res++;
                else if (t >= 3 * p - 4)
                    n++;
            }

            res += Math.min(n, S);
            output.write("Case #" + i + ": " + res);
            output.newLine();
        }

        input.close();
        output.close();
    }
}

package MyAllgoritmicLib;

public class Hungary {

	int INF = 1000*1000*1000;

	int n;
	int[][] a;
	int[] xy, yx;
	boolean[] vx, vy;
	int[] minrow, mincol;

	public Hungary(int[][] a) {
		// TODO Auto-generated constructor stub
		this.a = a.clone();
	}
	
	private boolean dotry (int i) {
		if (vx[i])  return false;
		vx[i] = true;
		for (int j=0; j<n; ++j)
			if (a[i][j]-minrow[i]-mincol[j] == 0)
				vy[j] = true;
		for (int j=0; j<n; ++j)
			if (a[i][j]-minrow[i]-mincol[j] == 0 && yx[j] == -1) {
				xy[i] = j;
				yx[j] = i;
				return true;
			}
		for (int j=0; j<n; ++j)
			if (a[i][j]-minrow[i]-mincol[j] == 0 && dotry (yx[j])) {
				xy[i] = j;
				yx[j] = i;
				return true;
			}
		return false;
	}
	
	@SuppressWarnings("unused")
	private int hungary(int num) {
		mincol = new int[num];
		minrow = new int[num];
		xy = new int[num];
		yx = new int[num];
		vx = new boolean[num];
		vy = new boolean[num];

        n = num;
        for (int q = 0; q<n; q++) {
        	mincol[q] = INF;
        	minrow[q] = INF;
        }

		for (int i=0; i<n; ++i)
			for (int j=0; j<n; ++j)
				minrow[i] = Math.min(minrow[i], a[i][j]);
		for (int j=0; j<n; ++j)
			for (int i=0; i<n; ++i)
				mincol[j] = Math.min (mincol[j], a[i][j] - minrow[i]);

        for (int q = 0; q<n; q++) {
        	xy[q] = -1;
        	yx[q] = -1;
        }

		for (int c=0; c<n; ) {
	        for (int q = 0; q<n; q++) {
	        	vx[q] = false;
	        	vy[q] = false;
	        }
			int k = 0;
			for (int i=0; i<n; ++i)
				if (xy[i] == -1 && dotry (i))
					++k;
			c += k;
			if (k == 0) {
				int z = INF;
				for (int i=0; i<n; ++i)
					if (vx[i])
						for (int j=0; j<n; ++j)
							if (!vy[j])
								z = Math.min (z, a[i][j]-minrow[i]-mincol[j]);
				for (int i=0; i<n; ++i) {
					if (vx[i]) minrow[i] += z;
					if (vy[i]) mincol[i] -= z;
				}
			}
		}

		int ans = 0;
		for (int i=0; i<n; ++i)
			ans += a[i][xy[i]];
		return ans;
	}
}
