Корректным скобочным выражением (<CBV>) будем называть строку, которая определяется следующим образом:
< CBV>::= |(<CBV>)|[<CBV>]|{<CBV>}|<CBV><CBV>
Заметим, что пустая строка является корректным скобочным выражением.
Введем обозначения: A – любое правильное скобочное выражение, B и C – два любых непустых правильных скобочных выражения. Будем называть характеристикой правильного скобочного выражения числовую функцию F от строки, представляющей правильное скобочное выражение, которая вычисляется по следующим правилам:
1.F(“”)=1
2.F(“(”+A+”)”)=F(A)+1
3. F(“[”+A+”]”)=F(A)+2
4. F(“{”+A+”}”)=F(A)+3
*5.F(B+C)=F(B)F(C)
Заметим, что здесь знак + означает операцию конкатенации (сцепления) строк.
Для заданной строки подсчитать и выдать значение числовой функции F на этой строке, если она является правильной скобочной последовательностью, в противном случае выдать текст The first mistake in position, за которым через пробел следует номер первой позиции, из-за которой строка не является правильным скобочным выражением (позиции считать занумерованными слева направо начиная с 1). Очевидно, если строка закончилась без ошибок, но осталась хотя бы одна незакрытая скобка, ошибкой будем считать позицию с номером, равным длине строке плюс 1 (как бы отсутствующую по неуважительной причине – смотри пятый пример).
####ОграниченияДлина строки не превосходит 60. В строке могут быть только скобки.
####Входные данныеЕдинственная строка – исходная строка.
####Выходные данныеВ единственной строке – ответ задачи.