압축된 단어 풀기

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

스티브는 글을 압축하는 방법을 하나 만들었다. 실제로 길이가 줄어들지 않을 때도 있다. 스티브는 단어 하나만 다루며, 다음 규칙으로 "압축된 단어"를 정의한다.

  1. 소문자 한 글자는 압축된 단어이다.
  2. (e1 e2  et n)(e_1\ e_2\ \dots\ e_t\ n) 은 압축된 단어이다. 여기서 ttnn은 음이 아닌 정수이고, 각 eie_i는 압축된 단어이다.

한 글자짜리 압축된 단어는 압축하지 않은 단어와 같다. 압축된 단어 (e1 e2  et n)(e_1\ e_2\ \dots\ e_t\ n)을 푸는 방법은 이렇다. 각 eie_i를 먼저 풀고, 푼 결과를 순서대로 이어 붙여 새 단어를 만든 다음, 그 단어를 nn번 이어 붙인다. 예를 들면 이렇다.

  • xx로 풀린다.
  • (t 3)ttt로 풀린다.
  • (a (b c 2) 3)abcbcabcbcabcbc로 풀린다.

압축된 단어를 푸는 프로그램을 작성하시오.

입력

입력은 테스트 케이스 하나 이상으로 이루어진다. 각 테스트 케이스는 올바르게 만들어진 압축된 단어 하나이고 한 줄을 차지한다. 줄의 끝은 $ 문자로 표시한다. 입력의 마지막 줄에는 $ 하나만 있으며(앞뒤에 공백이 있을 수 있다), 이 줄은 테스트 케이스가 아니다. 입력에 있는 압축된 단어는 모두 위 규칙에 맞다. 압축된 단어의 앞, 뒤, 중간에 공백이 들어갈 수 있고, 이런 공백은 무시한다. 글자와 숫자 사이에는 공백이 적어도 하나 있다.

출력

각 테스트 케이스마다 푼 단어를 한 줄에 출력한다. 줄바꿈 말고는 출력에 공백이 없어야 한다. 푼 결과가 빈 단어일 수 있고, 그때는 빈 줄을 출력한다.