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.BufferedReader;
import java.io.FileReader;
import java.io.IOException;


public class problem {

	public static void main(String[] args)  throws IOException{
		final String filein = "C:\\Users\\BYTE\\Downloads\\b-small-attempt0.in";
		//final String filein = "C:\\Users\\byte\\Downloads\\NewFolder\\C-small-attempt6.txt";
	    BufferedReader in = new BufferedReader(new FileReader(filein));
	    
	    
		int tests=Integer.parseInt(in.readLine());
		
		int n=0,s=0,p=0,num=0;
		
		for(int i=0;i<tests;i++)
		{
			String s1[]=in.readLine().split(" ");
						
			n=Integer.parseInt(s1[0]);
			s=Integer.parseInt(s1[1]);
			p=Integer.parseInt(s1[2]);
			
			int sur=0;
			
			for(int j=3; j<n+3;j++)
			{
				int g = Integer.parseInt(s1[j]);
				
				if(g==0)
				{
					if(p==0)
						num++;
					continue;
				}
				int q= g/3,r = g%3;
				
				if(r==0)
				{	
					if(q>=p )
						num++;
					else if((q+1)>=p && !((q+1)>10))
					{
						num++;
						sur++;
					}
					
				}
				
				else if(r==1)
				{
					if((q+1)>=p && !((q+1)>10))
						num++;
					
				}
				
				else if(r==2)
				{
					if(q>=p )
						num++;
					else if((q+1)>=p && !((q+1)>10))
						num++;
									
					else if((q+2)>=p && !((q+2)>10))
					{
						num++;
						sur++;
					}
					
				}
				
			}
			int temp =0;
			
			if(num<=s) temp=num;
			else
				temp = num-(sur-s);
			
			System.out.println("Case #"+(i+1)+": "+temp);
			num=0;
			
		}
	}

}
