#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll N,dp[3005][3005],pok,pniz[3005],res,najb[3005],vk[3005];
string A;
int main(){
   //while(true){
      cin>>A;
      N=A.size();
      A="."+A+"....";
      for(int i=0;i<=N+2;i++)
         for(int j=0;j<=N+2;j++)
            dp[i][j]=0;
      for(int i=3;i<N;i++){
         pok=0;
         pniz[0]=pniz[1]=pniz[2]=0;
         if(A[i]==A[i-1])
            pniz[1]++;
         for(int k=2;k<=N-i+1;k++){
            pniz[k]=pniz[k-1];
            if(i-k>=1 and i+k-1<=N)
               if(A[i+k-1]==A[i-k])
                  pniz[k]++;
         }
         vk[2]=pniz[2]+dp[i-2][2];
         for(int k=3;k<=i-1;k++)
            vk[k]=max(vk[k-1],pniz[k]+dp[i-k][k]);
         najb[i-1]=dp[1][i-1];
         for(int k=i-2;k>=2;k--)
            najb[k]=max(najb[k+1],dp[i-k][k]);
         for(int j=2;j<=N-i+1;j++){
            dp[i][j]=max(dp[i][j],vk[min(j,i-1)]);
            if(j<i-1)
               dp[i][j]=max(dp[i][j],pniz[j]+najb[j+1]);
         }
      }
      res=0;
      for(int i=1;i<=N;i++)
         res=max(dp[i][N-i+1],res);
      cout<<res<<endl;
   //}
}
/*
dp[i][j]

- Pocinje se elementom i
- Duzine je j
*/