import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
String begin = new String();
while ((begin = buf.readLine()) != null) {
int Length = begin.length();
char[] st = new char[2 * Length];
String ls = new String();
String le = new String();
int[] f = new int[2 * Length];
int max = 0, x = 0, y = 0, center;
int a;// 记录中心数
int b;// 向左或向右延伸的长度
int c = 0;// 记录边界最大的中心数
for (int i = 0; i < Length; i++) {
st[2 * i] = begin.charAt(i);
if (2 * i + 1 < 2 * Length)
st[2 * i + 1] = '*';
}
for (a = 0; a < st.length; a++) {
f[a] = 0;
// System.out.println();
if (max > 2 * (st.length - a) + 2)
break;
for (b = Math
.max(Math.min(f[Math.max(2 * c - a, 0)], f[c] - 2
* (a - c)), 0); a - b >= 0 & a + b < st.length; b++) {
// System.out.print("b:"+b);
if (st[a - b] != st[a + b])
break;
if (b * 2 + 1 > max) {
f[a] = 2 * b + 1;
max = 2 * b + 1;
x = a - b;
y = a + b;
c = a;
}
}
}
for (int i = (x + 1) / 2; i <= (y) / 2; i++) {
le = le + begin.charAt(i);
}
System.out.println(le.length());
}
}
}