#include<bits/stdc++.h> usingnamespace std; intmain(){ string s; cin >> s; int n = s.size(); vector<int> d1(n), d2(n); vector<int> ll(n, 1), rr(n, 1); for (int i = 0, l = 1, r = -1; i < n; ++i) { int k = (i > r) ? 1 : min(d1[r + l - i], r - i + 1); while (0 <= i - k && i + k < n && s[i - k] == s[i + k]) ++k; d1[i] = k--; rr[i - k] = max(rr[i - k], k * 2 + 1); ll[i + k] = max(ll[i + k], k * 2 + 1); if (i + k > r) l = i - k, r = i + k; } for (int i = 0, l = 1, r = -1; i < n; ++i) { int k = (i > r) ? 0 : min(d2[l + r - i + 1], r - i + 1); while (0 <= i - k - 1 && i + k < n && s[i - k - 1] == s[i + k]) ++k; d2[i] = k--; ll[i + k] = max(ll[i + k], d2[i] * 2); rr[i - k - 1] = max(rr[i - k - 1], d2[i] * 2); if (i + k > r) l = i - k - 1, r = i + k; } int ans = 0; for (int i = 1; i < n; ++i) rr[i] = max(rr[i], rr[i - 1] - 2); for (int i = n - 2; i >= 0; --i) ll[i] = max(ll[i], ll[i + 1] - 2); for (int i = 0; i + 1 < n; ++i) ans = max(ll[i] + rr[i + 1], ans); cout << ans; return0; }