#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int MOD = 1000000007; typedef unsigned long long ull; int main() { string s; cin >> s; if (s.size() == 2) { cout << 1 << endl; return 0; } for (int len = s.size(); len >= 2; --len) { // 文字数 for (int j = 0; j < s.size() - len + 1; ++j) { // 開始位置 bool isKaibun = false; int count = 1; for (int k = j; true; ++k) { // 今の位置 int back = j + len - count; if (k == back) { isKaibun = true; break; } if (k + 1 == back) { if (s[k] == s[back]) { isKaibun = true; } else { isKaibun = false; } break; } if (s[k] != s[back]) { isKaibun = false; break; } ++count; } if (isKaibun) { cout << len << endl; return 0; } } } cout << 1 << endl; return 0; }