for (; i < len; i++) {
str[i * 2 + 2] = s[i];
str[i * 2 + 3] = '#';
}
str[2 * len + 2] = 0;
for (int i = 1; i < 2 * len + 2 ; i++) {
rad[i] = 0;
}
int id = 0;
for (i = 1; i < 2 * len + 2; i++) {
if (max > i)
rad[i] = min(rad[2 * id - i], rad[id] + id - i) ;
else
rad[i] = 1 ;
while (str[i + rad[i]] == str[i - rad[i]])
rad[i] ++ ;
if (rad[i] + i > max) {
max = rad[i] + i;
id = i;
}
}
int mx = 0;
for (i = 1; i < 2 * len + 2 ; i++) {
if (mx < rad[i] - 1)
mx = rad[i] - 1;
}
return mx;
}
int main() {
int ca = 0 ;
while(scanf("%s",s) != EOF) {
if(strcmp(s , "END") == 0)break ;
printf("Case %d: " , ++ ca) ;
printf("%d\n",manacher()) ;
}
return 0 ;
}