분자식

시간 제한3초메모리 제한128 MB

문제

가상 화학에서 분자식으로 표현된 분자의 무게를 계산하는 프로그램을 작성하시오. 실제 화학처럼 각 분자식은 하나 이상의 원자로 이루어진 분자를 나타내지만, 화학적으로 실제 존재할 필요는 없다.

  • 하나의 원자는 원자 기호로 나타낸다. 원자 기호는 대문자 하나이거나, 대문자 뒤에 소문자 하나가 붙은 것이다. 예를 들어 HHe는 원자 기호이다.
  • 분자식은 원자 기호를 비어 있지 않게 나열한 것이다. 예를 들어 HHHeHHHeH 원자 네 개와 He 원자 두 개로 이루어진 분자를 나타낸다.
  • 같은 부분식 $X$가 연속으로 $n$번 반복될 때($n$은 $2$ 이상 $99$ 이하의 정수), 이를 (X)n으로 줄여 쓸 수 있다. $X$가 원자 기호 하나이면 괄호를 생략할 수 있다. 예를 들어 HHHeHHHeH2HeH2He, (HHHe)2, (H2He)2, ((H)2He)2로도 쓸 수 있다.

모든 분자식의 집합은 하나의 형식 언어로 볼 수 있다. 위의 설명을 요약하면, 분자식의 문법은 다음과 같이 정의된다.

     Molecule → Atom | Atom Number | ( Molecule ) Number | Molecule Molecule
         Atom → CapitalLetter | CapitalLetter SmallLetter
       Number → 2 | 3 | 4 | · · · | 97 | 98 | 99
CapitalLetter → A | B | C | · · · | X | Y | Z
  SmallLetter → a | b | c | · · · | x | y | z

각 원자는 고유한 원자량을 가진다. 분자량은 구성 원자들의 원자량을 모두 더한 값이다. 예를 들어 HHe의 원자량이 각각 $1$, $4$이면, (H2He)2로 표현되는 분자의 무게는 $12$이다.

입력

입력은 두 부분으로 이루어진다.

첫 번째 부분은 원자표이다. 여러 줄로 이루어지며, 각 줄에는 원자 기호, 하나 이상의 공백, 그리고 그 원자량(양의 정수, $1000$ 이하)이 있다. 같은 원자 기호가 두 줄에 나오지는 않는다. 이 부분은 END_OF_FIRST_PART만 있는 줄로 끝난다.

두 번째 부분은 여러 줄로 이루어진다. 각 줄은 공백이 없는 길이 $80$ 이하의 분자식이다. 한 분자는 최대 $105$개의 원자를 포함한다. 분자식에 나오는 원자 기호 중 일부는 원자표에 없을 수도 있다. 이 부분은 0 하나만 있는 줄로 끝난다.

출력

두 번째 부분의 각 분자식에 대해 한 줄씩 출력한다. 분자식의 모든 원자 기호가 원자표에 있으면 그 분자량을 정수로 출력하고, 그렇지 않으면 UNKNOWN을 출력한다. 다른 문자는 출력하지 않는다.