성의 발코니
시간 제한2초메모리 제한1024 MB
격자 가장자리에 1x3 발코니를 하나 지으면 왕과 왕비가 만날 수 있는지, 발코니 없이도 만날 수 있는지를 판단합니다.
문제
개인 왕국의 왕과 왕비는 당연히 아름다운 성에 산다. 성의 최상층에서는 왕국 전체가 내려다보이고, 부부는 그곳에 거처를 정했다. 최상층은 가로 미터, 세로 미터인 직사각형 방 하나이며, 따라서 개의 칸으로 이루어져 있다.
왕비의 어머니, 즉 왕의 장모는 요정이다. 작은 왕국에서 요정이 할 일이 무엇이겠는가? 바로 부부의 사랑을 시험하는 것이다!
어느 날 왕과 왕비가 최상층에서 서로 떨어져 있을 때, 요정은 일부 칸에 장애물을 세우고 층을 내려가는 계단을 모두 막아 버렸다. 쉽게 말해 요정이 이 층을 미로로 만들었고, 이제 왕과 왕비는 사랑을 증명하기 위해 미로에서 서로를 찾아야 한다. 찾지 못하면 평온하고 즐거운 저녁 대신 몇 시간씩 이어지는 잔소리를 듣게 된다.
이 재앙에서 무엇이 구해 줄 수 있을까? 첫째, 개인 왕국의 건축가들이 발명한 발코니가 있다. 현재 기술로는 미터 크기의 발코니를 하나 지을 수 있다. 왕은 바깥쪽 칸 중 연속된 세 칸(위에서 아래로, 왼쪽에서 오른쪽으로 모두 가능) 위에 발코니를 지으라고 명령할 수 있고, 발코니와 요정이 막지 않은 칸 사이의 벽을 허물 수 있다. 성의 발코니가 만든 통로가 부부의 만남을 도울지도 모른다.
둘째는 바로 여러분이다. 개인 왕국의 프로그래머로서, 왕에게 그 노력의 결과가 어떨지 알려 주어라.
입력
첫 줄에 두 정수 와 ()이 주어진다. 이는 층의 너비와 길이다. 이어지는 개의 줄에는 각각 개의 문자가 있다. .은 그 칸을 자유롭게 지나다닐 수 있다는 뜻이고, *는 요정이 그 칸을 막았다는 뜻이다. k와 q는 각각 왕과 왕비의 시작 위치를 나타낸다.
출력
발코니 없이도 왕이 왕비를 만날 수 있으면 That is not a problem을 출력한다. 발코니를 짓는 것으로만 만날 수 있으면 We can build a good balcony to be happy를 출력한다. 발코니를 지어도 만날 수 없으면 Good work, dear fairy를 출력한다.