#include <bits/stdc++.h>
using namespace std;
void solve(int cs) {
int a, b, c, d;
cin >> a >> b >> c >> d;
vector<vector<vector<vector<int>>>> dp(a + 1, vector<vector<vector<int>>>(b + 1, vector<vector<int>>(c + 1, vector<int>(d + 1, 0))));
for (int i = 0; i <= a; ++i) {
for (int j = 0; j <= b; ++j) {
for (int k = 0; k <= c; ++k) {
for (int l = 0; l <= d; ++l) {
//i
if (i >= 9) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 9][j][k][l] + 1);
}
if (i >= 7 && j >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 7][j - 1][k][l] + 1);
}
if (i >= 5 && j >= 2) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 5][j - 2][k][l] + 1);
}
if (i >= 3 && j >= 3) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 3][j - 3][k][l] + 1);
}
if (i >= 1 && j >= 4) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 1][j - 4][k][l] + 1);
}
if (i >= 6 && k >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 6][j][k - 1][l] + 1);
}
if (i >= 3 && k >= 2) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 3][j][k - 2][l] + 1);
}
if (i >= 6 && l >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 6][j][k][l - 1] + 1);
}
if (i >= 3 && l >= 2) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 3][j][k][l - 2] + 1);
}
//j
if (j >= 3 && k >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i][j - 3][k - 1][l] + 1);
}
//k
if (k >= 3) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i][j][k - 3][l] + 1);
}
if (k >= 1 && l >= 2) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i][j][k - 1][l - 2] + 1);
}
//i & j & k
if (i >= 4 && j >= 1 && k >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 4][j - 1][k - 1][l] + 1);
}
if (i >= 2 && j >= 2 && k >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 2][j - 2][k - 1][l] + 1);
}
if (i >= 2 && j >= 2 && l >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 2][j - 2][k][l - 1] + 1);
}
if (i >= 1 && j >= 1 && l >= 2) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 1][j - 1][k][l - 2] + 1);
}
if (i >= 4 && j >= 1 && l >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 4][j - 1][k][l - 1] + 1);
}
if (i >= 3 && k >= 1 && l >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 3][j - 1][k][l - 1] + 1);
}
if (i >= 1 && j >= 1 && k >= 1 && l >= 1) {
dp[i][j][k][l] = max(dp[i][j][k][l], dp[i - 1][j - 1][k - 1][l - 1] + 1);
}
}
}
}
}
cout << "Case " << cs << ": " << dp[a][b][c][d] << "\n";
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int tc;
cin >> tc;
for (int cs = 1; cs <= tc; cs++) {
solve(cs);
}
return 0;
}