program rollercoaster3;
var N,K,i,countH, speed :Longint;
S : Ansistring;
roller : array[1..100] of Longint;
section : array [1..4] of Longint;
begin
(*assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);*)
ReadLn(N);
ReadLn(S);
K := 0; countH:=0; speed:=0;
for i:=1 to 4 do section[i]:=0;
{ INSERT YOUR CODE HERE }
if S[1]='U' then begin K:=-1; WriteLn(K); exit; end;
for i:=1 to N do
Case S[i] of
'D' : begin roller[i]:=9; section[1]:=section[1]+1; end;
'U' : begin roller[i]:=-11; section[2]:=section[2]+1; end;
'H' : begin roller[i]:=0; section[3]:=section[3]+1; end;
'B' : begin roller[i]:=10; section[4]:=section[4]+1; end;
end;
for i:=1 to N do
begin
if S[i]='H' then countH:=countH+1;
speed:=speed+roller[i];
if speed<=0 then
begin
if countH>0 then
begin
countH:=countH-1;
speed:=speed + 10;
if ((speed<=0) and ((countH<=0) or (i=N))) then begin K:=-1; WriteLn(K); exit; end;
K:=K+1;
end
else begin K:=-1; WriteLn(K); exit; end;
end;
end;
if ((section[4] =0) and (section[2]= N div 2) and (section[3]+section[1]=N div 2)) then K:=section[3];
WriteLn(K);
end.
cHJvZ3JhbSByb2xsZXJjb2FzdGVyMzsKdmFyIE4sSyxpLGNvdW50SCwgc3BlZWQgOkxvbmdpbnQ7CiAgICBTIDogQW5zaXN0cmluZzsKICAgIHJvbGxlciA6IGFycmF5WzEuLjEwMF0gb2YgTG9uZ2ludDsKICAgIHNlY3Rpb24gOiBhcnJheSBbMS4uNF0gb2YgTG9uZ2ludDsKICAgCmJlZ2luCiAgICAoKmFzc2lnbihpbnB1dCwgICdpbnB1dC50eHQnKTsgIHJlc2V0KGlucHV0KTsKICAgIGFzc2lnbihvdXRwdXQsICdvdXRwdXQudHh0Jyk7IHJld3JpdGUob3V0cHV0KTsqKQoKICAgIFJlYWRMbihOKTsKCiAgICBSZWFkTG4oUyk7CiAgICBLIDo9IDA7IGNvdW50SDo9MDsgc3BlZWQ6PTA7IAogICAgZm9yIGk6PTEgdG8gNCBkbyBzZWN0aW9uW2ldOj0wOwogICAgeyBJTlNFUlQgWU9VUiBDT0RFIEhFUkUgfQogICAgaWYgU1sxXT0nVScgdGhlbiBiZWdpbiBLOj0tMTsgV3JpdGVMbihLKTsgZXhpdDsgZW5kOyAgIAogICAgZm9yIGk6PTEgdG8gTiBkbyAKICAgICAgICAgICAgICAgICAgICAgICBDYXNlIFNbaV0gb2YgIAoJCQkJJ0QnIDogYmVnaW4gcm9sbGVyW2ldOj05OyBzZWN0aW9uWzFdOj1zZWN0aW9uWzFdKzE7IGVuZDsKCQkJCSdVJyA6IGJlZ2luIHJvbGxlcltpXTo9LTExOyAgc2VjdGlvblsyXTo9c2VjdGlvblsyXSsxOyBlbmQ7IAoJCQkJJ0gnIDogYmVnaW4gcm9sbGVyW2ldOj0wOyAgIHNlY3Rpb25bM106PXNlY3Rpb25bM10rMTsgZW5kOyAKCQkgICAgICAgICAgICAgICAgJ0InIDogYmVnaW4gIHJvbGxlcltpXTo9MTA7ICBzZWN0aW9uWzRdOj1zZWN0aW9uWzRdKzE7IGVuZDsKICAgICAgICAgICAgICAgICAgICAgIGVuZDsKICAgIGZvciBpOj0xIHRvIE4gZG8gCiAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICBpZiBTW2ldPSdIJyB0aGVuIGNvdW50SDo9Y291bnRIKzE7ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgc3BlZWQ6PXNwZWVkK3JvbGxlcltpXTsgCiAgICAgICAgICAgICAgICAgICAgICAgaWYgc3BlZWQ8PTAgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvdW50SD4wIHRoZW4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudEg6PWNvdW50SC0xOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlZWQ6PXNwZWVkICsgMTA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHNwZWVkPD0wKSBhbmQgKChjb3VudEg8PTApIG9yIChpPU4pKSkgdGhlbiBiZWdpbiBLOj0tMTsgV3JpdGVMbihLKTsgZXhpdDsgZW5kOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSzo9SysxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgIGJlZ2luIEs6PS0xOyBXcml0ZUxuKEspOyBleGl0OyBlbmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7ICAKICAgICAgICAgICAgICAgICAgICBlbmQ7ICAgICAgCiAgICAgaWYgKChzZWN0aW9uWzRdID0wKSBhbmQgKHNlY3Rpb25bMl09IE4gZGl2IDIpIGFuZCAoc2VjdGlvblszXStzZWN0aW9uWzFdPU4gZGl2IDIpKSB0aGVuIEs6PXNlY3Rpb25bM107CiAgICAgV3JpdGVMbihLKTsKZW5kLg==