#include <bits/stdc++.h>
using namespace std;
int n, dp[1005][1005];
string s;
int main() {
ios::sync_with_stdio(false); cin.tie(nullptr);
cin >> s;
n = s.size(); s = " " + s;
memset(dp, 0, sizeof(dp));
for (int i = 1; i <= n; ++i) dp[i][i] = 1;
for (int len = 2; len <= n; ++len) {
for (int l = 1; l + len - 1 <= n; ++l) {
int r = l + len - 1;
dp[l][r] = max(dp[l][r - 1], dp[l + 1][r]);
if (s[l] == s[r])
dp[l][r] = max(dp[l][r], dp[l + 1][r - 1] + 2);
}
}
cout << dp[1][n] << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbiwgZHBbMTAwNV1bMTAwNV07CnN0cmluZyBzOwppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShudWxscHRyKTsKCWNpbiA+PiBzOwoJbiA9IHMuc2l6ZSgpOyBzID0gIiAiICsgczsKCW1lbXNldChkcCwgMCwgc2l6ZW9mKGRwKSk7Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIGRwW2ldW2ldID0gMTsKCWZvciAoaW50IGxlbiA9IDI7IGxlbiA8PSBuOyArK2xlbikgewoJCWZvciAoaW50IGwgPSAxOyBsICsgbGVuIC0gMSA8PSBuOyArK2wpIHsKCQkJaW50IHIgPSBsICsgbGVuIC0gMTsKCQkJZHBbbF1bcl0gPSBtYXgoZHBbbF1bciAtIDFdLCBkcFtsICsgMV1bcl0pOwoJCQlpZiAoc1tsXSA9PSBzW3JdKQoJCQkJZHBbbF1bcl0gPSBtYXgoZHBbbF1bcl0sIGRwW2wgKyAxXVtyIC0gMV0gKyAyKTsKCQl9Cgl9Cgljb3V0IDw8IGRwWzFdW25dIDw8ICdcbic7CglyZXR1cm4gMDsKfQ==