킹 (작은 입력)
시간 제한5초메모리 제한512 MB
칸 수가 최대 16개인 판에서 불탄 칸을 피해 킹이 방문하지 않은 이웃 칸으로 이동할 때, 최적 플레이에서 누가 이기는지 판정한다.
문제
앨리스와 밥이 행 열, 모두 개의 칸으로 이루어진 체스판에서 게임을 한다. 이 칸 중 일부는 불에 타 있다.
게임을 시작할 때 킹은 타지 않은 칸 하나에 놓여 있고, 앨리스와 밥이 번갈아 킹을 움직인다.
한 번의 차례에 킹은 인접한 8개 칸 중 하나로 반드시 움직여야 하고, 다음 두 조건을 지켜야 한다.
- 도착하는 칸은 타지 않은 칸이다.
- 킹이 한 번이라도 있었던 칸으로는 갈 수 없다.
움직일 수 없는 사람이 게임에서 진다. 앨리스가 먼저 움직인다. 두 사람이 모두 최선으로 움직일 때 누가 이기는지 구하라.
입력
첫째 줄에 테스트 케이스의 개수 이 주어진다.
다음으로 테스트 케이스가 개 주어진다. 각 테스트 케이스의 첫째 줄에는 두 정수 , 가 주어진다. 이어지는 개 줄에는 한 행의 개 칸을 나타내는 길이 의 문자열이 주어진다. 문자열은 '.', '#', 'K' 세 문자만 사용한다.
- '#'은 타 있는 칸이다.
- '.'은 타지 않았고 비어 있는 칸이다.
- 'K'는 게임을 시작할 때 킹이 있는 칸이다.
각 테스트 케이스에 'K'는 정확히 하나 있다.
제한
출력
각 테스트 케이스마다 한 줄에 "Case #: "를 출력하고(는 1부터 시작하는 테스트 케이스 번호), 그 뒤에 앨리스가 이기면 A, 밥이 이기면 B를 출력한다.