#include<bits/stdc++.h>
using namespace std;
#define N 55
string s;
char ss[N];
int f[N][N],n;
int main(){
cin>>s;
n=s.length();
int tot=0;
ss[++tot]=s[0];
for(int i=1;i<n;i++){
if(s[i]!=s[i-1]){
ss[++tot]=s[i];
}
}
for(int i=1;i<=tot;i++)s[i]=ss[i];
n=tot;
memset(f,0x3f,sizeof(f));
for(int i=1;i<=n;i++){
f[i][i]=1;
}
for(int L=1;L<n;L++){
for(int i=1,j=i+L;i+L<=n;i++,j++){
if(s[i]==s[j]){
f[i][j]=min(f[i][j],f[i+1][j-1]+1);
}else{
for(int k=i;k<j;k++){
f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]);
}
}
}
}
cout<<f[1][n]<<endl;
return 0;
}