let str;
while(str = readline()) {
    let arr1 = str.split('');
    let dp = [];
//     for(let i = 0;i<str.length-1;i++) {
//         dp[i] = [];
//         dp[i][i] = 1;
//         if(arr1[i] == arr1[i+1]) {
//             dp[i][i+1] = 2;
//         }
//     }
    let max = 0;
    for(let i = 0;i<str.length;i++) {
        dp[i] = [];
    }
    for(let i = 0;i<str.length;i++) {
         for(let j = 0;j<str.length-i;j++) {
             if(arr1[j] == arr1[j+i]) {
                 if(i == 0) {
                     dp[j][j+i] = true;
                     max = Math.max(max,1);
                 }else if(i == 1) {
                     dp[j][j+i] = true;
                     max = Math.max(max,2);
                 }else {
                     dp[j][j+i] = true && dp[j+1][j+i-1];
                     if(dp[j][j+i]){
                        max = Math.max(max,i+1); 
                     }
                 }
             }else {
                 dp[j][j+i] = false;
             }
        }
    }
    console.log(max);
}