시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
창영과 상근은 한 동굴의 소유권을 두고 다투고 있다. 두 사람은 동굴 안에서 번갈아 막대를 던져 승부를 정하기로 했다. 동굴에는 미네랄이 있으며, 막대가 미네랄을 맞히면 그 칸의 미네랄이 파괴된다.
동굴은 R행 C열의 격자로 나타낸다. 각 칸은 비어 있거나 미네랄을 포함한다. 상하좌우로 인접한 미네랄 칸들은 같은 클러스터에 속한다.
창영은 동굴의 왼쪽에, 상근은 오른쪽에 서 있다. 두 사람은 차례대로 막대를 던진다. 막대는 정해진 높이에서 땅과 수평으로 날아가며, 왼쪽에서 던지는 턴과 오른쪽에서 던지는 턴이 번갈아 나온다. 막대가 날아가다가 처음 만나는 미네랄은 파괴되고, 막대는 그 자리에서 멈춘다.
미네랄이 파괴된 뒤에는 남은 클러스터가 분리될 수 있다. 분리된 클러스터가 공중에 떠 있으면 중력에 의해 아래로 떨어진다. 떨어지는 동안 클러스터의 모양은 변하지 않으며, 바닥이나 다른 미네랄 클러스터를 만나기 직전까지 계속 내려간다. 떨어진 뒤에는 닿은 클러스터와 하나의 클러스터가 된다.
초기 동굴의 상태와 막대를 던지는 높이가 주어진다. 모든 막대를 던진 뒤의 동굴 상태를 구하시오.
첫째 줄에 동굴의 크기 R과 C가 주어진다. (1 <= R, C <= 100)
다음 R개의 줄에는 동굴의 상태가 위쪽 행부터 차례대로 주어진다. 각 줄은 C개의 문자로 이루어져 있으며, .은 빈 칸, x는 미네랄을 뜻한다.
다음 줄에는 막대를 던지는 횟수 N이 주어진다. (1 <= N <= 100)
마지막 줄에는 막대를 던지는 높이 N개가 공백으로 구분되어 주어진다. 모든 높이는 1 이상 R 이하이다. 높이 1은 가장 아래 행, 높이 R은 가장 위 행을 의미한다. 첫 번째 막대는 왼쪽에서 오른쪽으로, 두 번째 막대는 오른쪽에서 왼쪽으로 던지며 이후에도 방향이 번갈아 바뀐다.
초기 상태에는 공중에 떠 있는 미네랄 클러스터가 없다. 또한 한 번의 파괴 뒤에 두 개 이상의 클러스터가 동시에 떨어지는 입력은 주어지지 않는다. 클러스터가 떨어질 때에는 그 클러스터의 어떤 열에서 가장 아래에 있는 미네랄 중 하나가 바닥 또는 다른 미네랄 위로 떨어지는 입력만 주어진다.
모든 막대를 던진 뒤의 동굴 상태를 입력과 같은 격자 형식으로 출력한다.