/// Accepted
#include<bits/stdc++.h>
using namespace std;
#define mx 102
int dp[mx][mx][mx];
char a[mx],b[mx],c[mx];
int lena, lenb, lenc;
int fun(int ida, int idb, int idc)
{
    if(ida>=lena || idb>=lenb){
        if(idc>=lenc)
            return 0;
        else return -500;
    }
    if(dp[ida][idb][idc]!=-1) return dp[ida][idb][idc];
    int ret = 0;
    if(idc==0){
        if(a[ida]==b[idb]){
            if(a[ida]==c[idc]){
                ret = 1 + fun(ida+1, idb+1, idc+1);
                ret = max(ret, 1 + fun(ida+1, idb+1, idc));
            }
            else{
                ret = 1 + fun(ida+1, idb+1, idc);
            }
        }
        else{
            ret = fun(ida+1, idb, idc);
            ret = max(ret, fun(ida, idb+1, idc));
        }
    }
    else if(idc==lenc){
        if(a[ida]==b[idb]){
            ret = 1 + fun(ida+1, idb+1, idc);
        }
        else{
            ret = fun(ida+1, idb, idc);
            ret = max(ret, fun(ida, idb+1, idc));
        }
    }
    else{
        if(a[ida]==b[idb]){
            if(a[ida]==c[idc]){
                ret = 1 + fun(ida+1, idb+1, idc+1);
            }
            else{
                ret = fun(ida+1, idb+1, idc);
            }
        }
        else{
            ret = fun(ida+1, idb, idc);
            ret = max(ret, fun(ida, idb+1, idc));
        }
    }
    return dp[ida][idb][idc] = ret;
}
int main()
{
    int tc;
    scanf("%d",&tc);
    for(int t=1; t<=tc; t++){
        scanf("%s%s%s",a,b,c);
        lena = strlen(a);
        lenb = strlen(b);
        lenc = strlen(c);
        memset(dp,-1,sizeof dp);
        printf("Case %d: %d\n",t,max(0,fun(0,0,0)));
    }
    return 0;
}
