스타일리시
시간 제한1초메모리 제한128 MB
올바르게 들여쓰기된 프로그램에서 괄호별 들여쓰기 가중치를 구한 뒤, 이를 이용해 다른 프로그램의 각 줄 들여쓰기를 계산하거나 결정 불가로 표시합니다.
문제
스타일리시(Stylish)는 프로그래밍 언어이다.
스타일리시의 문법은 알파벳으로 이루어진 이름, 세 종류의 괄호, 마침표(.), 줄바꿈으로 구성된다.
괄호는 소괄호 ( ), 중괄호 { }, 대괄호 [ ]의 세 종류이며, 항상 짝을 이루도록 사용하고 올바르게 중첩된다. 즉, 각 여는 괄호는 같은 종류의 닫는 괄호와 대응되며 괄호끼리 서로 교차하지 않는다. 다른 언어와 달리 스타일리시는 공백 대신 마침표(.)로 들여쓰기를 표현한다. 다음은 스타일리시 프로그램의 예이다.
(Welcome.to
.........Stylish)
{Stylish.is
.....[.(a.programming.language.fun.to.learn)
.......]
.....Maybe.[
.......It.will.be.an.official.ICPC.language
.......]
.....}
위 예에서 보듯이 스타일리시 프로그램은 마침표로 들여쓰기를 한다. 한 줄의 들여쓰기 양은 그 줄 맨 앞에 연속으로 놓인 마침표의 개수이다.
잘 들여쓰기된 스타일리시 프로그램의 들여쓰기 양은 들여쓰기 스타일 로 결정되며, 이다. 은 소괄호, 는 중괄호, 는 대괄호에 대응하는 들여쓰기 양이다.
잘 들여쓰기된 프로그램에서 한 줄의 들여쓰기 양은 로 정해진다. 여기서 는 그 줄 이전까지 나온 여는 소괄호·중괄호·대괄호의 개수이고, 는 닫는 소괄호·중괄호·대괄호의 개수이다. 잘 들여쓰기된 프로그램의 첫 줄은 항상 들여쓰기가 없다.
위 예의 들여쓰기 스타일은 이다. 첫째 줄에는 여는 소괄호가 하나 있으므로, 둘째 줄의 들여쓰기 양은 이다. 처음 네 줄에는 여는 소괄호가 둘, 여는 중괄호와 대괄호가 각각 하나, 닫는 소괄호가 둘 있으므로, 다섯째 줄의 들여쓰기 양은 이다.
잘 들여쓰기된 스타일리시 프로그램 와 그렇지 않은 프로그램 가 주어질 때, 의 들여쓰기 스타일을 알아내어 에 적용하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 두 정수 와 가 주어진다.
이어지는 개의 줄에는 스타일리시 마스터가 작성한 잘 들여쓰기된 프로그램 가, 그다음 개의 줄에는 다른 프로그램 가 주어진다. 두 프로그램의 각 줄은 최소 1글자 이상이며 80글자를 넘지 않는다. 의 모든 줄은 마침표로 시작하지 않는다.
입력의 마지막 줄에는 0이 두 개 주어진다.
출력
각 테스트 케이스마다 의 들여쓰기 스타일을 알아내어 에 적용한 뒤, 각 줄의 들여쓰기 양을 공백으로 구분하여 출력한다. 들여쓰기 양을 유일하게 결정할 수 없는 줄은 -1을 출력한다.