using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Problem_2
{
class Program
{
static void Main( string[] args )
{
string[] lines = File.ReadAllLines( "input.txt" );
int cases = Int32.Parse( lines[0] );
string output = "";
for ( int i = 1; i < lines.Length; i++ )
{
output += "Case #" + i + ": " + Solve( lines[i].Split( ' ' ) ) + "\r\n";
}
File.WriteAllText( "output.txt", output );
}
static int Solve( string[] rawData )
{
int[] scores = new int[rawData.Length - 3];
for ( int i = 3; i < rawData.Length; i++ )
scores[i - 3] = Int32.Parse( rawData[i] );
int googlers = Int32.Parse( rawData[0] );
int triplets = Int32.Parse( rawData[1] );
int best = Int32.Parse( rawData[2] );
int maxGooglers = 0;
for ( int i = 0; i < scores.Length; i++ )
{
// First try without triplets
for ( int s1 = 0; s1 <= 10; s1++ )
for ( int s2 = 0; s2 <= 10; s2++ )
for ( int s3 = 0; s3 <= 10; s3++ )
{
int sum = s1 + s2 + s3;
if ( sum != scores[i] ) continue;
if ( Math.Abs( s1 - s2 ) > 1 || Math.Abs( s2 - s3 ) > 1 || Math.Abs( s3 - s1 ) > 1 ) continue;
if ( s1 == best || s2 == best || s3 == best )
{
maxGooglers++;
goto next;
}
}
// Then attempt WITH triplets
for ( int s1 = 0; s1 <= 10; s1++ )
for ( int s2 = 0; s2 <= 10; s2++ )
for ( int s3 = 0; s3 <= 10; s3++ )
{
int sum = s1 + s2 + s3;
if ( sum != scores[i] ) continue;
if ( ( Math.Abs( s1 - s2 ) > 1 || Math.Abs( s2 - s3 ) > 1 || Math.Abs( s3 - s1 ) > 1 ) && triplets == 0 ) continue;
if ( s1 == best || s2 == best || s3 == best )
{
maxGooglers++;
triplets--;
goto next;
}
}
next:
continue;
}
return maxGooglers;
}
}
}