#include <bits/stdc++.h>
using namespace std;
const int maxn = 35;
int d[maxn][5],c[maxn][5];
int n;

void get_dimensions(int v[],int b,int dim)
{
	int index=0;
	for(int i=0;i<3;i++)
		if(i!=dim) v[index++]=c[b][i];
}
int dp(int x,int y)
{
	int &ans = d[x][y];
	if(ans) return ans;
	int u[3],v[3];
	get_dimensions(u,x,y);
	for(int i=0;i<n;i++)
		for(int j=0;j<3;j++)
		{
			get_dimensions(v,i,j);
			if(u[0]>v[0]&&u[1]>v[1])	
				an***ax(dp(i,j),ans);
		}
	ans+=c[x][y];
	return ans;
}
int main()
{
	int kase=1;
	while(scanf("%d",&n)!=EOF)
	{
		if(n==0) return 0;
		int ans=0;
		memset(d,0,sizeof(d));
		for(int i=0;i<n;i++)
		{
			scanf("%d%d%d",&c[i][0],&c[i][1],&c[i][2]);
			sort(c[i],c[i]+3);
		}
		for(int i=0;i<n;i++)	
			for(int j=0;j<3;j++)
				an***ax(dp(i,j),ans);
		printf("Case %d: maximum height = %d\n",kase++,ans);
	}

	return 0;
}