import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


public class Dancing_improved {
	
	static int f_Superan_limites(String params){
		  int superan_limite=0;
		  String[] parametros=params.split(" ");
		  
		  int n_participantes= Integer.parseInt(parametros[0]);
		  int n_sorprendidos= Integer.parseInt(parametros[1]);
		  int nota_limite= Integer.parseInt(parametros[2]);
		  
		  int suma_notas, resto, nota_juego;
		  for(int i=3;i<parametros.length;i++){ // Recorro las sumas de los participantes
			  
			  suma_notas=Integer.parseInt(parametros[i]);
			  resto=suma_notas%3;
			  
			  if(resto==0){ // el resto es el número triplicado!
				  nota_juego=suma_notas/3;
				  if(nota_juego>=nota_limite){
					  superan_limite++;
				  }else if(nota_juego-1>=0 && n_sorprendidos>0 && ((nota_juego+1)>=nota_limite || (nota_juego+2)>=nota_limite)){ // no supera el límite pero podría hacerlo si quedan sorprendidos
					  n_sorprendidos--;
					  superan_limite++;
				  }
			  }else if((suma_notas+1)%3==0){ // Tendré que jugar con el valor en +-1
				  nota_juego=(suma_notas+1)/3;
				  if(nota_juego-1>=0 && nota_juego>=nota_limite){
					  superan_limite++;
				  }else if(nota_juego-1>=0 && n_sorprendidos>0 && (nota_juego+1)>=nota_limite){
					  n_sorprendidos--;
					  superan_limite++;
				  }
			  }else if((suma_notas+2)%3==0){ // Tendré que jugar con el valor en +-2
				  nota_juego=(suma_notas+2)/3;
				  if(nota_juego-1>=0 && nota_juego>=nota_limite){
					  superan_limite++;
				  }		  
			  }			  
		  }
		  return superan_limite;
	}
	
	public static void main(String[] args) throws IOException {
		FileReader fr = new FileReader(args[0]);
		BufferedReader bf = new BufferedReader(fr);
		int ntest=0;
		
		FileWriter fstream = new FileWriter("out.txt");
		BufferedWriter out = new BufferedWriter(fstream);
		
		String lines = bf.readLine();
		String liner, linew;
		int lines_r=0;
		String[] numbers;
		int total;
		
		while((liner = bf.readLine())!=null && lines_r<=Integer.parseInt(lines)) {
			ntest++;
			numbers=liner.split(" ");
			total=f_Superan_limites(liner);
			linew="Case #"+ntest+": "+total+"\n";
			out.write(linew);
			lines_r++;
		}
		out.close();
		fr.close();
	}
}

import java.io.*;
import java.util.*;
class Source3
{
	public static void main(String[] args) throws IOException 
	{
		String s,word,buffer;
		 FileReader input = new FileReader("B-small.in");
		 BufferedReader in = new BufferedReader(input);
		File file = new File("B-small.out");
		BufferedWriter out = new BufferedWriter(new FileWriter(file));

			s = in.readLine();
		int count= Integer.parseInt(s);

		int i=1;
		 while ((s = in.readLine()) != null && s.length() != 0)
		{
			 out.write("Case #"+(i++)+": ");
				Scanner scan =new Scanner(s);
				
			
				int N =Integer.parseInt(scan.next());
				int S=Integer.parseInt(scan.next());
				int p=Integer.parseInt(scan.next());
				int[] t =new int[200];
				
				for(int x=0;x<N;x++)
				{
					t[x]= Integer.parseInt(scan.next());
					
				}

			int ans = perform(N,S,p,t);
			out.write(ans+"\n");
		}
				
				

				

		 out.close();
	}


	public static int perform(int N,int S ,int p ,int[] t)
	{
		int count=0;
		int surprise=0;
		boolean pass=false;
		int staticP=p;
				for(int x=0;x<N;x++)
				{
					pass=false; 
					p=staticP;
					while(p<=10&&!pass)
					{

							//System.out.println("SCORE : "+t[x]);
							int remain = t[x]-p;	
							int[][] possibleNS = {{p,p},{p+1,p+1},{p,p+1},{p,p-1},{p-1,p-1}     };
							int[][] possibleS = {{p+2,p+2},{p,p+2},{p+1,p+2},{p-2,p-2},{p-2,p-1},{p-2,p}  };
							
							//System.out.print("TRI: "+p);

							if(equalpair(remain,possibleNS))
							{
								count++;
								pass=true;
							}
							else if(equalpair(remain,possibleS))
							{
								if(surprise<S)
								{
									count++;
									surprise++;
									pass=true;
								}
							}
							p++;
					}

				}


				return count;
	}

	public static boolean equalpair(int num,int[][] pair)
	{
			
			boolean check=false;

			
			for(int i=0;i<pair.length;i++)
		{
			if(num==(pair[i][0]+pair[i][1]))
			{
				
				if(pair[i][0]>=0&&pair[i][0]<=10&&pair[i][1]>=0&&pair[i][1]<=10)
				{
					check=true;
					//System.out.println(" "+pair[i][0]+" "+pair[i][1]);
				}
			}
		}

			
			
			
			return check;
	}	
}
