#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;
}

京公网安备 11010502036488号