#include <bits/stdc++.h>
using namespace std;
int solution(string &S){
int n = S.size();
if(n==1 && S[0] == 'H') return -1;
else if(n==1 && S[0] == '-') return 0;
vector<bool> isTank(n,false);
int cnt = 0;
for(int i=0;i<n;i++){
if(S[i] == 'H'){
if(i==0){
if(S[i+1] == 'H') return -1;
isTank[i+1] = true;
cnt++;
}
else{
if(isTank[i-1]) continue;
else if(i+1<n && S[i+1] == '-'){
isTank[i+1] = true;
cnt++;
}
else{
if(S[i-1] == '-'){
isTank[i-1] = true;
cnt++;
}
else{
return -1;
}
}
}
}
}
return cnt;
}
int main(){
string S = "-H-H";
cout<<solution(S);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgc29sdXRpb24oc3RyaW5nICZTKXsKCQoJaW50IG4gPSBTLnNpemUoKTsKCWlmKG49PTEgJiYgU1swXSA9PSAnSCcpIHJldHVybiAtMTsKCWVsc2UgaWYobj09MSAmJiBTWzBdID09ICctJykgcmV0dXJuIDA7Cgl2ZWN0b3I8Ym9vbD4gaXNUYW5rKG4sZmFsc2UpOwoJaW50IGNudCA9IDA7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlpZihTW2ldID09ICdIJyl7CgkJCWlmKGk9PTApewoJCQkJaWYoU1tpKzFdID09ICdIJykgcmV0dXJuIC0xOwoJCQkJaXNUYW5rW2krMV0gPSB0cnVlOwoJCQkJY250Kys7CgkJCX0KCQkJZWxzZXsKCQkJCWlmKGlzVGFua1tpLTFdKSBjb250aW51ZTsKCQkJCWVsc2UgaWYoaSsxPG4gJiYgU1tpKzFdID09ICctJyl7CgkJCQkJaXNUYW5rW2krMV0gPSB0cnVlOwoJCQkJCWNudCsrOwoJCQkJfQoJCQkJZWxzZXsKCQkJCQlpZihTW2ktMV0gPT0gJy0nKXsKCQkJCQkJaXNUYW5rW2ktMV0gPSB0cnVlOwoJCQkJCQljbnQrKzsKCQkJCQl9CgkJCQkJZWxzZXsKCQkJCQkJcmV0dXJuIC0xOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQkKCX0KCQoJcmV0dXJuIGNudDsKCQp9CgppbnQgbWFpbigpewoJCgkKCXN0cmluZyBTID0gIi1ILUgiOwoJY291dDw8c29sdXRpb24oUyk7Cn0=