/*
最长回文子串算法
manacher算法 O(n)线性算法
当然也使用扩展的KMP算法 O(nlogn)
*/
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
#define MAXN 1000010
char in[MAXN],in2[MAXN*2];
int p[MAXN*2];
int n,m;
void init()
{
in2[0] = '$';
m = 1;
for(int i=0;in[i];i++)
{
in2[m++] = '#';
in2[m++] = in[i];
}
in2[m] = '#';
in2[m+1] = '@';
}
void solve(int &ans)
{
for(int i=1;i<=m;++i) p[i] = 0;
p[1] = 1;
int mx_right = 1;
int mx_center = 1;
ans = 1;
for(int i=2;i<=m;++i)
{
if( mx_right>i )
{
p[i] = min( mx_right-i+1,p[2*mx_center-i] );
}
else
{
p[i] = 1;
}
while(in2[i-p[i]]==in2[i+p[i]]) p[i]++;
if( i+p[i]-1>mx_right )
{
mx_right = i+p[i]-1;
mx_center = i;
}
if( p[i]>ans ) ans=p[i];
}
}
int main()
{
int cas = 1,ans;
while(1)
{
scanf("%s",in);
if(in[0]=='E') break;
init();
ans = 0;
solve(ans);
printf("Case %d: %d\n",cas++,ans-1);
}
return 0;
}