#include<bits/stdc++.h>
using namespace std;
string s;
int f[51][51];
int main(){
getline(cin,s);
for (int i=s.size();i>0;i--){
s[i]=s[i-1];
}
int lens=s.size();
memset(f,0x3f3f3f,sizeof(f));
for (int i=1;i<=lens;i++){
f[i][i]=1;
}
for (int i=1;i<=lens;i++){
for (int j=i+1;j<=lens;j++){
if (s[i]==s[j]){
f[i][j]=min(f[i+1][j],f[i][j-1]);
}
else{
for (int k=i;k<j;k++){
f[i][j]=min(f[i][k]+f[k+1][j],f[i][j]);
}
}
}
}
cout<<f[1][lens]<<endl;
return 0;
}