#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int v; ll w; }; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-8; int INF = INT_MAX / 2; bool kaibun(string s) { int n = s.length(); for (int i = 0, j = n - 1; i < j; i++, j--) if (s[i] != s[j]) return false; return true; } int main() { string S; cin >> S; int n = S.length(); int maxi = 0; for (int i = 0; i < n; i++) for (int j = i + 1; j <= n; j++) if (kaibun(S.substr(i, j - i)) && j - i < n) maxi = max(maxi, j - i); cout << maxi << endl; }