import java.util.Scanner;
public class B {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int T = in.nextInt();
		for(int zz = 1; zz <= T;zz++){
			int N = in.nextInt();
			int S = in.nextInt();
			int p = in.nextInt();
			int x = 0;
			for(int i = 0; i < N;i++){
				int score = in.nextInt();
				int best = score/3;
				int mod = score%3;
				int diff = p-best;
				if(diff<1){
					x++;
				}else if(diff<2){
					if(mod==0 && score !=0){
						if(S!=0){
							S--;x++;
						}
					}else if(score!=0){
						x++;
					}
				}else if(diff<3){
					if(mod==2){
						if(S!=0){
							S--;x++;
						}
					}
				}
			}
			System.out.format("Case #%d: %d\n", zz, x);
		}
	}
}

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Dance {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int numCases = Integer.parseInt(br.readLine());
		for ( int i = 1; i <= numCases; i++ ) {
			String[] c = br.readLine().split(" ");
			int googlers = Integer.parseInt(c[0]);
			int exceptions = Integer.parseInt(c[1]);
			int target = Integer.parseInt(c[2]);
			int hits = 0;
			int potentials = 0;
			for ( int j = 3; j < (googlers + 3); j++ ) {
				int val = Integer.parseInt(c[j])
					, avg = val/3
					, mod = val%3
					, max = avg + (mod == 2 ? 2 : 1)
					, normalMax = (mod == 0 ? avg : avg + 1)
				;
				//				System.out.println("Checking " + val + " with avg " + avg + " and mod " + mod + " and max " + max + " and normal max " + normalMax);
				if ( (val == 0 && target > 0) || max < target ) {
					continue; // Unobtainable, discard
				}
				else if ( normalMax >= target ) {
					hits++;
				}
				else {
					potentials++;
				}
			}
			System.out.println("Case #" + i + ": " + (hits + (exceptions >= potentials ? potentials : exceptions)));
		}
	}
}