#include<bits/stdc++.h>
using namespace std;
int dp[500][500];
string s,n;
int main(){
cin>>s;
int L=s.size();
memset(dp,127,sizeof(dp));
// cout<<dp[1][L]<<endl;
for(int i=0;i<L;i++){
n[i+1]=s[i];
}
for(int i=1;i<=L;i++)dp[i][i]=1;
for(int len=2;len<=L;len++){
for(int i=1;i<=L;i++){
if(i+len-1>L)continue;
int l=i,r=i+len-1;
if(n[l]==n[r]){
dp[l][r]=dp[l+1][r];
// continue;
}else
for(int j=l;j<r;j++){
dp[l][r]=min(dp[l][r],dp[l][j]+dp[j+1][r]);
}
}
}
cout<<dp[1][L];
return 0;
}