단어 지우기

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

문제

여러 줄로 이루어진 문단이 주어진다. 한 줄 안에서 단어는 영문자(az, AZ)가 연속으로 이어진 최대 구간이며, 단어와 단어는 공백 또는 별표(*)로 구분된다.

다음 두 조건 중 하나라도 만족하면 그 단어는 지워진다.

  • 단어가 차지하는 모든 열에 대해, 바로 아랫줄의 같은 열에 있는 문자가 영문자도 별표도 아닌 경우(공백이거나, 아랫줄이 그 열까지 닿지 않는 경우), 또는
  • 그 단어가 문단의 마지막 줄에 나타나는 경우.

어떤 단어가 지워지면, 그 아랫줄에 무엇이 있든 상관없이 문단 전체에서 철자가 완전히 같은 단어가 나타나는 모든 위치가 공백으로 바뀐다. 별표와 공백은 절대 사라지지 않으며, 단어는 대소문자를 구분한다(즉 Catcat은 서로 다른 단어다).

단어를 지우면 그 글자들이 공백이 되고, 이로 인해 윗줄 단어를 받치고 있던 문자가 사라져 또 다른 단어가 지워질 수 있다. 더 이상 지울 수 있는 단어가 없을 때까지 이 규칙을 반복해서 적용한다.

입력

첫째 줄에 테스트 케이스의 수 $t$ ($1 \le t \le 20$)가 주어진다.

각 테스트 케이스는 AZ, az, 공백, 별표(*)로 이루어진 여러 줄로 구성된다. 각 테스트 케이스의 끝에는 문자 # 하나만 있는 줄이 오며, 이 줄은 문단에 포함되지 않는다.

출력

각 테스트 케이스마다, 지울 수 있는 단어를 모두 지운 뒤의 문단을 출력한다. 지워진 글자는 공백으로 표시한다. 각 줄 끝의 공백은 채점할 때 무시된다. 각 테스트 케이스의 출력 뒤에는 문자 # 하나만 있는 줄을 출력한다.