package problem1;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Arrays;





public class Problem1 {

    public static void main(String[] args) throws FileNotFoundException, IOException{
        try {
             TextIO.readFile("L:\\Coodejam\\Input\\Input.txt");
        }
        catch (IllegalArgumentException e) {
              System.out.println("Can't open file ");
              System.exit(0);
         }
        
        FileOutputStream fout = new FileOutputStream("L:\\Coodejam\\Output\\output.txt");
        PrintStream ps=new PrintStream(fout);
        
        int cases=TextIO.getInt();
        int googlers=0,surprising=0,least=0;
        for(int i=0;i<cases;i++){
            int counter=0;
            googlers=TextIO.getInt();
            surprising=TextIO.getInt();
            least=TextIO.getInt();
            int score[]=new int[googlers];
            for(int j=0;j<googlers;j++){
                score[j]=TextIO.getInt();
                 }
            
            
            
            
            Arrays.sort(score);
            int temp=0;
            int sup[]=new int[surprising];
            
          for(int j=0;j<googlers && surprising>0;j++){
               if(biggestNS(score[j])<least && biggestS(score[j])==least){
                   surprising--;
                   counter++;
                }
               }
           
            for(int j=0;j<googlers;j++){
                if(surprising==0)temp=biggestNS(score[j]);
                    
                else {
                    temp=biggestS(score[j]);
                    surprising--;     
                } 
                   if(temp>=least)counter++;
           
             }
            
             ps.println("Case #"+(i+1)+": "+counter);
        }
    }
    
   static int biggestNS(int x){
       if(x==0)return 0;
       if(x==1)return 1;
       return ((x-1)/3)+1;
   }
   
   static int biggestS(int x){
       if(x==0)return 0;
       if(x==1)return 1;
       return ((x-2)/3)+2;
   }
}
package dancingwiththegooglers;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.Scanner;

/**
 *
 * @author Masilo
 */
public class DancingWithTheGooglers {

    public static void main(String[] args) {
        Scanner inputStream = null;
        PrintWriter outputStream = null;
      
        try{
            inputStream = new Scanner(new FileInputStream("input.txt"));
            outputStream = new PrintWriter(new FileOutputStream("output.txt"));
            
            int t = Integer.parseInt(inputStream.nextLine());
            String outputLine = "";
            String[] inputNumbers = null;
            int number = 0, mod = 0, p = 0;
            int numberOfBestResults = 0, NumberOfSurprisingResults = 0;
            
            for (int i = 1; i<=t;i++){
                inputNumbers = inputStream.nextLine().split(" ");
                NumberOfSurprisingResults = Integer.parseInt(inputNumbers[1]);
                numberOfBestResults = 0;
                outputLine = "Case #"+i+": ";
                
                for (int j = 3;j<inputNumbers.length;j++){
                    number = (int) Math.floor(Integer.parseInt(inputNumbers[j])/3);
                    mod = Integer.parseInt(inputNumbers[j]) % 3;
                    p = Integer.parseInt(inputNumbers[2]);
                    
                    if (number >= p){
                        numberOfBestResults++;
                        continue;
                    }
                    
                    if (mod==1 && number+1==p){
                        numberOfBestResults++;
                        continue;
                    }
                    else if(mod==2 && NumberOfSurprisingResults==0 && number+1==p){
                        numberOfBestResults++;
                        continue;
                    }
                    
                    if (NumberOfSurprisingResults > 0 && (number>=1 || mod >0)){
                        if (number+mod == p || number+1==p){
                            numberOfBestResults++;
                            NumberOfSurprisingResults--;
                            continue;
                        }
                    }
                   
                }
                
                outputLine += ""+numberOfBestResults;
                outputStream.println(outputLine);
            }
            
            outputStream.close();
            inputStream.close();
            
        }
        catch(Exception e){
            System.out.println("file input.txt was not found");
        }
    }
}
