스마트폰용 HTML 에디터를 개발하던 중, 잘라내기·복사하기·붙여넣기 기능에서 문제가 생겼다. 간단해 보이지만 실제로는 꽤 까다로운 기능인데, 선택한 구간의 서식을 그대로 유지해야 하기 때문이다. 게다가 선택한 구간의 서식은 구간 밖에 있는 태그의 영향까지 받으므로 처리가 더 복잡하다.
HTML 문서가 주어지고, 그 안에서 위치 $B$부터 $E$까지의 구간을 선택했다. 이때 $B$부터 $E$까지의 부분 문자열이 원래 문서에서 가지고 있던 서식과 똑같은 서식을 갖도록, 부분 문자열의 앞과 뒤에 필요한 태그를 추가해야 한다.
모든 태그는 여는 태그(예: <b>)와 닫는 태그(예: </b>)가 쌍을 이룬다. 두 태그 사이에는 또 다른 태그를 넣을 수 있다. 단, 아직 닫히지 않은 태그가 남아 있으면 그와 짝이 맞지 않는 닫는 태그를 먼저 쓸 수 없다. 예를 들어 <i>abc<b>def</i>ghi</b>는 올바르지 않은 HTML이다. 또한 이미 열려 있는(아직 닫지 않은) 태그를 다시 열 수도 없다. 예를 들어 <b><b>recursive b</b></b>는 올바르지 않은 HTML이다.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄이며, 형식은 B E TEXT이다.
TEXT는 에디터에 들어 있는 HTML 문서이다.TEXT의 길이를 $L$이라고 하면 $0 \le B \le E \le L$이다.-1 -1이 주어지며, 이는 입력의 끝을 뜻한다.TEXT의 길이는 200자를 넘지 않으며, 아스키 코드 값이 32 이상 126 이하인 문자로만 이루어진다. 여는 태그는 항상 <X> 꼴이고, $X$는 한 글자 이상이며 a부터 z, A부터 Z, 0부터 9, 그리고 -로만 이루어진다. 문자 <는 오직 태그를 시작할 때에만 쓰인다.
입력으로 주어지는 HTML 문서는 항상 올바르다. 즉 모든 여는 태그에는 대응하는 닫는 태그가 있고 그 반대도 성립하며, 부분 문자열이 태그를 중간에서 끊는 경우도 없다.
각 테스트 케이스마다, $B$부터 $E$까지의 부분 문자열($E$ 위치의 문자는 포함하지 않는다)이 원래 문서에서와 똑같은 서식을 갖도록 앞뒤에 필요한 태그를 추가한 결과를 한 줄에 출력한다.