#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string s;
cin >>s;
int n=s.size();
vector <vector <int> > DP(n,vector <int> (n));
vector <vector <int> > PrefMax(n,vector <int>(n));
for(int i=1;i<n;i++)DP[0][i]=0;
for(int i=1;i<n;i++){
    for(int k=0;k<=max(i-2,0);k++){
        int ss=(s[i]==s[i-1])+((i<n-1&&i>1)&&(s[i+1]==s[i-2]));
        DP[i][i+1]=max(DP[i][i+1],DP[k][i-1]+ss);
    }
    int sig=(s[i]==s[i-1]);
    for(int j=i;j<n-1;j++){
        sig+=((2*i-j-2>=0)&&(s[j+1]==s[2*i-j-2]));
        DP[i][j+1]=max(DP[i][j],PrefMax[max(0,2*i-j-2)][i-1]+sig);
    }
    PrefMax[0][i]=DP[0][i];
    for(int j=1;j<i;j++){
        PrefMax[j][i]=max(DP[j][i],PrefMax[j-1][i]);
    }
}
int rez=0;
for(int i=0;i<n;i++){
    rez=max(rez,DP[i][n-1]);
}
cout <<rez<<endl;
}