#include<bits/stdc++.h>
using namespace std;
int f[1005][1005];
int main(){
string s;
cin>>s;
int n=s.size();
for(int i=0;i<=n;i++){
for(int j=0;j<=n;j++){
f[i][j]=INT_MAX;
}
}
for(int i=0;i<=n;i++){
f[i][i]=1;
}
for(int len=0;len<n;len++){
for(int i=0,j=len;j<=n;i++,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][j],f[i][k]+f[k+1][j]);
}
}
}
}
printf("%d",f[0][n]);
return 0;
}