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