#include <bits/stdc++.h>

using namespace std;

int dp[3000][3000]={0};

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    string rec;
    cin>>rec;
    int d=rec.size();

    if(d==2){cout<<0; return 0;}
    for(int i=2; i<d-1; i++)
    {
        int br=i-2, p=0;
        for(int j=i-1, k=i; j>=0 or k<d; j--, k++)
        {
            if(k<d and j>=0)
            {
                if(rec[j]==rec[k])p+=1;
                if(j==br){dp[i][k]=max(dp[i][k-1], dp[br][i]+p); br--;}
                else dp[i][k]=p;
            }
            else if(k>=d and j>=0)
            {
                if(j==br){dp[i][d-1]=max(dp[i][min(k-1, d-1)], dp[br][i]+p); br--;}
                else dp[i][k]=p;
            }
            else if(k<d and j<0)
            {
                dp[i][k]=dp[i][k-1];
            }

        }
    }
    /*for(int i=0; i<d; i++)
        {for(int j=0; j<d; j++)
    {cout<<dp[i][j]<<" ";}cout<<endl;}*/
    cout<<max(dp[d-2][d-1], dp[d-3][d-1]);
    return 0;
}
/* aa
  baa
  aaa
   aa*/