#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
typedef tuple<int,int,int> tii;

tii box[10];
int DP[10][3][1100];
int n;
int dp(int b, int t, int m){
    if (DP[b][t][m]!=-1) return DP[b][t][m];
    int x,y;
    if (t==0) x=get<1>(box[b]),y=get<2>(box[b]); 
    if (t==1) x=get<0>(box[b]),y=get<2>(box[b]); 
    if (t==2) x=get<0>(box[b]),y=get<1>(box[b]); 
    int ans=1;
    for (int k=0;k<n;k++) if ((m&(1<<k))==0){ //not already used
        for (int j=0;j<3;j++){
            int c,d; 
            if (j==0) c=get<1>(box[k]),d=get<2>(box[k]);
            if (j==1) c=get<0>(box[k]),d=get<2>(box[k]);
            if (j==2) c=get<0>(box[k]),d=get<1>(box[k]);
            bool fit=false;
            if ((x>=c)&&(y>=d)) fit=true;
            if ((x>=d)&&(y>=c)) fit=true;
            if (fit) ans=max(ans,dp(k,j,m+(1<<k))+1);
        }
    }
    return DP[b][t][m]=ans;
}
int main(){
    ios::sync_with_stdio(0);
    int ca=1;
    while (cin>>n){
        memset(DP,-1,sizeof DP);
        if (n==0) break;
        vector<pii> v;
        for (int i=0;i<n;i++){
            int a,b,c; cin>>a>>b>>c; 
            box[i]=make_tuple(a,b,c);
        }
        int ans=1;
        for (int i=0;i<n;i++) for (int j=0;j<3;j++) ans=max(ans,dp(i,j,1<<i));
        cout<<"Case "<<ca<<": "<<ans<<endl;
        ca++;
    }
    return 0;
}