Program String69;
Procedure checkbrackets(var s:string;ob,cb:char);
Var
i,Count:integer;
Begin
While pos(ob,s) <> 0 do
Begin
count:=0;
For i:=pos(ob,s) to length(s) do
Begin
If s[i] = ob then
inc(count)
Else If s[i] = cb then
dec(count);
If count = 0 then
break;
End;
If count = 0 then
Begin
insert('*',s,pos(ob,s));
delete(s,pos(ob,s),1);
insert('*',s,i);
delete(s,i+1,1);
End
Else
Begin
insert('?',s,pos(ob,s));
delete(s,pos(ob,s),1);
End;
End;
While pos(cb,s) <> 0 do
Begin
insert('!',s,pos(cb,s));
delete(s,pos(cb,s),1);
End;
End;
Var
a:string;
Begin
readln(a);
checkbrackets(a,'(',')');
If (pos('!',a) = 0) And (pos('?',a) = 0) Then
writeln(0)
Else
If (pos('!',a) <> 0) And (pos('?',a) = 0) Then
writeln(pos('!',a))
Else
writeln(-1);
End.