#include <string>
#include <algorithm>
using namespace std;
class ConundrumReloaded{
public :
int minimumLiars( string answers) {
int INF = 8101919 ;
int ret = INF;
int N = answers.size ( ) ;
int dp[ 50 ] [ 2 ] ;
for ( int i= 0 ; i< 2 ; i++ ) {
dp[ 0 ] [ i] = 0 ;
dp[ 0 ] [ 1 - i] = INF;
for ( int j= 0 ; j< N; j++ ) {
switch ( answers[ j] ) {
case 'H' :
dp[ j+ 1 ] [ 0 ] = dp[ j] [ 0 ] ;
dp[ j+ 1 ] [ 1 ] = dp[ j] [ 1 ] + 1 ;
break ;
case 'L' :
dp[ j+ 1 ] [ 0 ] = dp[ j] [ 1 ] ;
dp[ j+ 1 ] [ 1 ] = dp[ j] [ 0 ] + 1 ;
break ;
case '?' :
dp[ j+ 1 ] [ 0 ] = min( dp[ j] [ 0 ] , dp[ j] [ 1 ] ) ;
dp[ j+ 1 ] [ 1 ] = min( dp[ j] [ 1 ] + 1 , dp[ j] [ 0 ] + 1 ) ;
break ;
}
}
ret = min( ret, dp[ N] [ i] ) ;
}
if ( ret > 114514 ) ret = - 1 ;
return ret;
}
} ;
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgQ29udW5kcnVtUmVsb2FkZWR7CnB1YmxpYzoKICBpbnQgbWluaW11bUxpYXJzKHN0cmluZyBhbnN3ZXJzKXsKICAgIGludCBJTkYgPSA4MTAxOTE5OwogICAgaW50IHJldCA9IElORjsKICAgIGludCBOID0gYW5zd2Vycy5zaXplKCk7CiAgICBpbnQgZHBbNTBdWzJdOwogICAgZm9yKCBpbnQgaT0wOyBpPDI7IGkrKyApewogICAgICBkcFswXVtpXSA9IDA7CiAgICAgIGRwWzBdWzEtaV0gPSBJTkY7CiAgICAgIGZvciggaW50IGo9MDsgajxOOyBqKysgKXsKICAgICAgICBzd2l0Y2goIGFuc3dlcnNbal0gKXsKICAgICAgICAgIGNhc2UgJ0gnOgogICAgICAgICAgICBkcFtqKzFdWzBdID0gZHBbal1bMF07CiAgICAgICAgICAgIGRwW2orMV1bMV0gPSBkcFtqXVsxXSsxOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgJ0wnOgogICAgICAgICAgICBkcFtqKzFdWzBdID0gZHBbal1bMV07CiAgICAgICAgICAgIGRwW2orMV1bMV0gPSBkcFtqXVswXSsxOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgJz8nOgogICAgICAgICAgICBkcFtqKzFdWzBdID0gbWluKCBkcFtqXVswXSwgZHBbal1bMV0gKTsKICAgICAgICAgICAgZHBbaisxXVsxXSA9IG1pbiggZHBbal1bMV0rMSwgZHBbal1bMF0rMSApOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0ID0gbWluKCByZXQsIGRwW05dW2ldICk7CiAgICB9CiAgICBpZiggcmV0ID4gMTE0NTE0ICkgcmV0ID0gLTE7CiAgICByZXR1cm4gcmV0OwogIH0KfTs=