#include <bits/stdc++.h>
using namespace std;
int t[100][100];
bool pailndrome(string s,int i,int j){
for(int k=0;k<(j-i+1)/2;k++){
if(s[k+i]!=s[j-k]){
return false;
}
}
return true;
}
int solve(string s,int i,int j){
if(i>=j){
return 0;
}
if(pailndrome(s,i,j)){
return 0;
}
if(t[i][j]!=-1){
return t[i][j];
}
int mn=INT_MAX;
for(int k=i;k<j;k++){
int temp=1+solve(s,i,k)+solve(s,k+1,j);
if(temp<mn){
mn=temp;
}
return t[i][j]=mn;
}
}
int main() {
string s="stoot";
int i=0;
int j=s.size()-1;
memset(t,-1,sizeof(t));
cout<<solve(s,i,j);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCB0WzEwMF1bMTAwXTsKYm9vbCBwYWlsbmRyb21lKHN0cmluZyBzLGludCBpLGludCBqKXsKCWZvcihpbnQgaz0wO2s8KGotaSsxKS8yO2srKyl7CgkJaWYoc1trK2ldIT1zW2ota10pewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoJcmV0dXJuIHRydWU7CgkKfQoKaW50IHNvbHZlKHN0cmluZyBzLGludCBpLGludCBqKXsKCWlmKGk+PWopewoJCXJldHVybiAwOwoJfQoJaWYocGFpbG5kcm9tZShzLGksaikpewoJCXJldHVybiAwOwoJfQoJaWYodFtpXVtqXSE9LTEpewoJCXJldHVybiB0W2ldW2pdOwoJfQoJaW50IG1uPUlOVF9NQVg7Cglmb3IoaW50IGs9aTtrPGo7aysrKXsKCQkKCQkKCQoJCWludCB0ZW1wPTErc29sdmUocyxpLGspK3NvbHZlKHMsaysxLGopOwoJCWlmKHRlbXA8bW4pewoJCQltbj10ZW1wOwoJCX0KCQlyZXR1cm4gdFtpXVtqXT1tbjsKCQoJfQoJCQp9CgoKaW50IG1haW4oKSB7CglzdHJpbmcgcz0ic3Rvb3QiOwoJaW50IGk9MDsKCWludCBqPXMuc2l6ZSgpLTE7CgltZW1zZXQodCwtMSxzaXplb2YodCkpOwoJY291dDw8c29sdmUocyxpLGopOwoJcmV0dXJuIDA7Cn0=