수족관

R행 C열 격자의 대각선 벽을 가장 적은 비용으로 허물어 전체를 하나의 구역으로 만듭니다.

보통7최소 신장 트리유니온 파인드그래프아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

수족관을 RRCC열 격자로 나누고, 칸마다 대각선 벽을 하나씩 끼워 넣었다. 벽은 칸의 왼쪽 아래 모서리와 오른쪽 위 모서리를 잇거나(/), 왼쪽 위 모서리와 오른쪽 아래 모서리를 잇는다(\). 수족관 바깥 테두리는 유리라서 치울 수 없다.

이 벽들이 수족관 내부를 여러 구역으로 나눈다. 벽을 넘지 않고 헤엄쳐 오갈 수 있는 두 지점은 같은 구역에 있다. 두 벽이 한 점에서만 맞닿아도 그 점으로는 지나가지 못한다.

칸마다 그 안에 있는 벽의 강도가 정해져 있고, 벽 하나를 통째로 허무는 데 강도만큼의 힘이 든다. 물고기들이 수족관 내부를 하나의 구역으로 합치려면 힘이 최소 얼마나 필요한지 구하라.

아래 그림은 2×22 \times 2 수족관의 예다. 구역이 네 개이고, 강도가 7, 9, 12인 벽 세 개를 허물면 전체가 한 구역이 된다. 28보다 적은 힘으로는 합칠 수 없다.

2 x 2 수족관의 예

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. (1T201 \le T \le 20)

각 테스트 케이스의 첫 줄에는 행의 수 RR과 열의 수 CC가 주어진다. (1R,C1001 \le R, C \le 100)

이어지는 RR개 줄에는 벽의 방향이 주어진다. 각 줄은 공백 없는 CC개의 문자로 이루어지고, 각 문자는 / 또는 \이다.

그다음 RR개 줄에는 각각 CC개의 정수가 주어진다. 이 값은 대응하는 칸에 있는 벽의 강도이며, 1 이상 10000 이하다.

출력

각 테스트 케이스마다 Case x: y 꼴로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 수족관 내부를 하나의 구역으로 합치는 데 필요한 힘의 최솟값이다.