package com.gcj.parser;

public class MaxPoints {

	public static int normal(int value){
		int toReturn = 0;
		switch (value) {
		case 0 : toReturn = 0 ; break;
		case 1 : toReturn = 1 ; break;
		case 2 : toReturn = 1 ; break;
		case 3 : toReturn = 1 ; break;
		case 4 : toReturn = 2 ; break;
		case 5 : toReturn = 2 ; break;
		case 6 : toReturn = 2 ; break;
		case 7 : toReturn = 3 ; break;
		case 8 : toReturn = 3 ; break;
		case 9 : toReturn = 3 ; break;
		case 10 : toReturn = 4 ; break;
		case 11 : toReturn = 4 ; break;
		case 12 : toReturn = 4 ; break;
		case 13 : toReturn = 5 ; break;
		case 14 : toReturn = 5 ; break;
		case 15 : toReturn = 5 ; break;
		case 16 : toReturn = 6 ; break;
		case 17 : toReturn = 6 ; break;
		case 18 : toReturn = 6 ; break;
		case 19 : toReturn = 7 ; break;
		case 20 : toReturn = 7 ; break;
		case 21 : toReturn = 7 ; break;
		case 22 : toReturn = 8 ; break;
		case 23 : toReturn = 8 ; break;
		case 24 : toReturn = 8 ; break;
		case 25 : toReturn = 9 ; break;
		case 26 : toReturn = 9 ; break;
		case 27 : toReturn = 9 ; break;
		case 28 : toReturn = 10 ; break;
		case 29 : toReturn = 10 ; break;
		case 30 : toReturn = 10 ; break;

		}

		return toReturn;
	}

	public static int surprising(int value){
		int toReturn = 0;
		switch (value) {
		case 0 : toReturn = 0 ; break;
		case 1 : toReturn = 1 ; break;
		case 2 : toReturn = 2 ; break;
		case 3 : toReturn = 2 ; break;
		case 4 : toReturn = 2 ; break;
		case 5 : toReturn = 3 ; break;
		case 6 : toReturn = 3 ; break;
		case 7 : toReturn = 3 ; break;
		case 8 : toReturn = 4 ; break;
		case 9 : toReturn = 4 ; break;
		case 10 : toReturn = 4 ; break;
		case 11 : toReturn = 5 ; break;
		case 12 : toReturn = 5 ; break;
		case 13 : toReturn = 5 ; break;
		case 14 : toReturn = 6 ; break;
		case 15 : toReturn = 6 ; break;
		case 16 : toReturn = 6 ; break;
		case 17 : toReturn = 7 ; break;
		case 18 : toReturn = 7 ; break;
		case 19 : toReturn = 7 ; break;
		case 20 : toReturn = 8 ; break;
		case 21 : toReturn = 8 ; break;
		case 22 : toReturn = 8 ; break;
		case 23 : toReturn = 9 ; break;
		case 24 : toReturn = 9 ; break;
		case 25 : toReturn = 9 ; break;
		case 26 : toReturn = 10 ; break;
		case 27 : toReturn = 10 ; break;
		case 28 : toReturn = 10 ; break;
		case 29 : toReturn = 10 ; break;
		case 30 : toReturn = 10 ; break;

		}
		return toReturn;
	}

}

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

public class Launcher {
	static int t, n, s, p, tcount, ncount, scount, pcount;
	static int a, b, num, ans;
	
	
	public static void main(String[] args){
		String c;
		int i,j;
		
		
		try {
			FileInputStream fin = new FileInputStream ("input.txt");
			System.out.println("Input file stream created");
			Scanner sc = new Scanner(fin);
			System.out.println("Scanner created");
			
			FileOutputStream fout = new FileOutputStream ("output.txt");
			DataOutputStream dout = new DataOutputStream (fout);
			
			t=sc.nextInt();
			tcount=0;
			
			
			while (tcount<t){
				tcount++;
				n=sc.nextInt();
				s=sc.nextInt();
				p=sc.nextInt();
				ncount=0;
				
				a=(p-1)*3;
				if (tcount==3){
					System.out.println ("a = " +a);
				
				}
				b=a-2;
				ans=0;
				scount=0;
				while (ncount < n){
					ncount++;
					num=sc.nextInt();
					if (p==0){
						ans = n;
					}
					else{
						if (p==1){
							if (num>0){
								ans++;
							}
						}
						else{
																			
							if (num>a) {
								ans++;
							}else {
									if (num>b && scount<s) {
										scount++;
										ans++;
									}
							}
						}
					}
				} //while ncount
					
				//Write output file
				dout.writeBytes("Case #");
				dout.writeBytes(Integer.toString(tcount));
				dout.writeBytes(": ");
				dout.writeBytes(Long.toString(ans));
				fout.write(13);
				fout.write(10);
			
			} //while tcount
		
			

		} catch (Exception e){
			System.out.println(e);
		}
	}//main
} //class