import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Scanner;


public class B {
	static int[][] memo;
	static int[] nums;
	static int p;
	public static void main(String[] args)throws IOException
	{
		Scanner br=new Scanner(new File("B-small-attempt0.in"));
		PrintWriter out=new PrintWriter(new File("b.out"));
		int cases=br.nextInt();
		for(int c=1;c<=cases;c++)
		{
			int n=br.nextInt(),s=br.nextInt();
			p=br.nextInt();
			nums=new int[n];
			for(int i=0;i<n;i++)
				nums[i]=br.nextInt();
			memo=new int[n][s+1];
			for(int[] a:memo)
				Arrays.fill(a,-1);
			out.printf("Case #%d: %d\n",c,go(0,s));
		}
		out.close();
	}
	public static int go(int index,int s)
	{
		if(index>=nums.length)
			return 0;
		if(memo[index][s]!=-1)
			return memo[index][s];
		int best=0;
		for(int i=0;i<=10;i++)
		{
			int max=i;
			for(int j=0;j<=10;j++)
			{	
				if(Math.abs(i-j)>2)
					continue;
				max=Math.max(i,j);
				thisone:
				for(int k=0;k<=10;k++)
				{
					int ret=0;
					if(Math.abs(i-k)>2||Math.abs(j-k)>2)
						continue;
					max=Math.max(max,k);
					int count=0;
					if(Math.abs(i-k)==2)
						count++;
					if(Math.abs(i-j)==2)
						count++;
					if(Math.abs(j-k)==2)
						count++;
					if(i+j+k==nums[index])
					{
						boolean surp=(count>=1);
						if(surp&&s>0)
						{
							if(max>=p)
								ret++;
							ret+=go(index+1,s-1);
						}
						else if(!surp)
						{
							if(max>=p)
								ret++;
							ret+=go(index+1,s);
						}
						best=Math.max(best,ret);
					}
					else if(i+j+k>nums[index])
						break thisone;
				}
			}
		}
		return memo[index][s]=best;
	}
}

package gcj.qualifier;
/**
 * @(#)ProbB.java
 *
 *
 * @author 
 * @version 1.00 2011/5/9
 */

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

import static java.lang.System.*;
import static java.lang.Integer.*;
public class ProbB
{

	public FileReader fr;
	public BufferedReader br;

	
    public ProbB(String file, String output)
    {
    	if (output!=null)
			setOut(output);

    	try
    	{
   	    	fr=new FileReader(file);
 	   		br=new BufferedReader(fr);
 	   		
    		int caseNo=parseInt(br.readLine());
    		//out.println(caseNo);
    		for (int i=0; i<caseNo; i++)
    		{
    			String caseAnswer=runCase();
    			out.println("Case #"+ (i+1) + ": " +caseAnswer);
    		}
    		
    	}
    	catch (IOException e)
    	{
    	}

    }

    public void setOut(String output)
    {
		try
    	{
			System.setOut(new PrintStream(output));
		}
    	catch (FileNotFoundException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
		}    	
    }
    
    public String runCase() throws IOException
    {
    	String ss=br.readLine();
    	StringTokenizer st=new StringTokenizer(ss);
    	int t=Integer.parseInt(st.nextToken());
    	int s=Integer.parseInt(st.nextToken());
    	int p=Integer.parseInt(st.nextToken());
    	int [] tt=new int[t];
    	int test=4;
    	if (p>2)
    		test=(p-2)*3;
 //   	out.println();
 //   	out.println(test);
    	int num=0;
    	//double test=((double)p-((double)2/3));

    	int div; int mod;
    	for (int i=0; i<t; i++)
    	{
    		tt[i]=Integer.parseInt(st.nextToken());
    		div=tt[i]/3;mod=tt[i]%3;
    		if (tt[i]>=p)
    		{
        		if (div>=p-2)
        		{
        			if (div>=p || (div==(p-1)&&(mod==2||mod==1)))
        			{
        				num++;
        			}
        			else if (s>0)
        			{
        				if ((div==(p-2)&&mod==2)||(div==(p-1)&&mod==0))
        				{
        					s--;
//        					out.print("*");
        					num++;

        				}
        				
        				
        			}
        			else continue;

/*
            		out.print(tt[i]);
            		out.print(" : ");
            		out.print(tt[i]/3);
            		out.print(" : ");
            		out.print(tt[i]%3);
            		out.print(" : ");
            		out.println();    			    				
  */
        		}
    		}

//    		out.println(p+":::"+tt[i]+":"+tt[i]/3+":"+tt[i]%p);

    		
      		//out.println(tt[i]);
    	}

	
    		//out.println(num);

        	return new Integer(num).toString();
    }
    
    public static void main(String [] args)
    {
    	ProbB gjct=new ProbB("C:/JavaPgms/workspace/codejam/2012/in/qualifier/B-small-attempt3.in", "C:/JavaPgms/workspace/codejam/2012/out/qualifier/B.out");
    }
    
    
    
    
}