드로이드와 격납고
면접 대비시간 제한2초메모리 제한1024 MB
바위 블록과 드로이드가 놓인 일렬의 입구에서 L, R 명령을 실행할 때 바위에 부딪히지 않는 드로이드의 위치를 구합니다.
문제
한 솔로는 자신의 우주선 '밀레니엄 팰컨'을 매우 아낀다. 우주선의 안전과 경비는 그에게 중요하다. 그래서 우주선이 있는 격납고 입구를 지키려고 한 솔로가 드로이드 여러 대를 배치했다.
입구는 한 줄로 늘어선 개의 칸으로 나타낼 수 있다. 각 칸은 비어 있거나 돌 블록을 가진다. 빈 칸 일부에는 드로이드가 서 있다. 각 드로이드는 한 솔로가 정한 이동 알고리즘을 따라 움직인다. 이동 알고리즘은 개의 명령으로 이루어지며, 각 명령은 L 또는 R이다. L은 한 칸 왼쪽으로, R은 한 칸 오른쪽으로 움직이라는 뜻이다. 드로이드들은 동시에 움직이며, 서로의 움직임에 영향을 주지 않는다. 드로이드가 어느 순간 돌 블록이 있는 칸으로 이동해야 하면, 드로이드는 돌에 부딪혀 파괴된다. 파괴된 드로이드는 더 이상 움직이지 않으며, 다른 드로이드의 움직임을 막을 수도 없다.
한 솔로는 이동 알고리즘을 꼼꼼하게 짜지 않았다. 알고리즘을 모두 실행한 뒤 살아남는 드로이드가 어떤 것인지 궁금해졌다.
입력
첫 줄에 입구의 칸 수 과 이동 알고리즘의 길이 을 나타내는 두 자연수가 주어진다 ().
둘째 줄에는 입구의 배치를 나타내는 길이 의 문자열이 주어진다. 각 문자는 빈 칸 ., 돌 블록 #, 드로이드 D 중 하나이다. 입구 양옆에는 돌 블록이 있다고 가정해도 된다.
셋째 줄에는 길이 의 문자열이 주어진다. 각 문자는 L 또는 R이다.
출력
첫 줄에 살아남는 드로이드의 수 를 출력한다. 다음 줄에는 살아남는 개 드로이드의 위치를 오름차순으로 출력한다.