#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200100;
int l[MAXN],r[MAXN], a[MAXN];
int manacher(const int *s, int n){
    int i = 0, j = 0, k = 0, ret = 0, m = 2 * n - 1;
    while(i < m){
        int c = i<k?min(r[2*j-i], (k-i)/2):0;
        l[i] = c;
        int x=i/2, y=(i+1)/2;
        while(x>=c && y+c<n && s[x-c]==s[y+c]) c++;
        if(k<2*(y+c)) j = i, k = 2*(y+c);
    //    ret = max(ret, 2*c-1+i%2);
        r[i++] = c;
    }    
    return ret;
}
int main(){
    int T;
    scanf("%d", &T);
    for(int tt = 1; tt <= T; tt++){
        int n;
        scanf("%d", &n);
        //n = 100000;
        for(int i = 0; i < n; i++){
            scanf("%d", &a[i]);
            //a[i] = 10000;
        }
        manacher(a, n);
        //for(int i = 0; i < 2 * n - 1; i++) printf("%d ", r[i]);
        int ans = 0;
        //for(int i = 1; i < 2 * n - 1; i++) l[i] = max(l[i]-5000, 1);
        for(int i = 2 * n - 1; i > 1; i--){
            if((i & 1) == 0) continue;
            for(int j = r[i]; j >= 1; j--){
                if(j < ans) break;
                int k = i - 2 * j;
                if(k < 0) continue;
                if(r[k] >= j) ans = max(ans, j); 
            }
        }
        /*for(int i = 1; i < n - 1; i++){
            int x = 2 * i + 1;
            for(int j = c
        }*/
        printf("Case #%d: %d\n", tt, ans*3);
    }
    return 0;
}
