옥상 정원
시간 제한1초메모리 제한1024 MB
사진 찍힌 칸의 변을 각각 한 번씩만 지나면서 매번 방향을 바꾸는 경로를 찾고, 없으면 NO를 출력합니다.
문제
서울대학교 신공학관 옥상에는 대학원생에게만 보이는 커다란 정원이 있다. 이 정원에는 꽃이 피어 있는 정사각형 화단이 격자 모양으로 늘어서 있고, 화단의 변을 따라 산책로가 나 있다.
곧 이 정원을 볼 수 없게 되는 평석이는 추억을 간직하려고 마지막으로 정원을 찾았다. 평석이는 산책로를 걸으며 주변 화단들의 사진을 찍었다. 돌아가려던 평석이는 졸업 기념으로 아껴 두었던 해외 게임쇼 티켓이 없어졌다는 사실을 알아챘다.
평석이는 티켓을 찾으려고 걸었던 산책로를 되짚어 보려 한다. 하지만 곧 연구실로 돌아가야 해서 모든 길을 다시 걸을 수는 없다. 다행히 카메라에 화단 사진이 남아 있으므로, 평석이는 그 화단들의 주변 길만 먼저 확인하기로 했다. 시간이 얼마 없으니, 사진을 찍은 화단의 네 변에 해당하는 길을 각각 정확히 한 번씩만 지나가고 그 밖의 길은 지나가지 않는다. 또한 한 방향으로만 걸으면 집중력이 떨어질 수 있으므로, 화단의 한 변을 지날 때마다 이동 방향을 바꾸려고 한다.
평석이는 가로 방향 길과 세로 방향 길이 만나는 지점이라면 어디에서든 출발할 수 있다. 이 조건을 지키면서 티켓을 찾아다닐 수 있는지 확인하자.
입력
첫 줄에 세로 방향으로 늘어선 화단의 개수 N과 가로 방향으로 늘어선 화단의 개수 M이 주어진다. 이다.
다음 N개의 줄에는 화단의 상태를 나타내는 길이 M의 문자열이 한 줄씩 주어진다. 문자열은 #와 .로만 이루어져 있다. #는 평석이가 사진을 찍은 화단이고, .는 그렇지 않은 화단이다.
사진을 찍은 화단이 하나 이상 있음이 보장된다.
출력
평석이가 조건을 지키며 이동할 수 있다면 첫 줄에 YES를 출력한다.
다음 줄에는 평석이의 경로를 나타내는 문자열을 출력한다. 문자열은 L, R, U, D로만 이루어져야 한다. 각각 왼쪽, 오른쪽, 위, 아래로 화단 한 변의 길이만큼 걸어간다는 뜻이다.
조건을 만족하는 경로가 없다면 첫 줄에 NO를 출력한다.
힌트
첫 번째 예시의 경로는 다음 그림과 같다.
