만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

드로이드와 격납고

면접 대비

시간 제한2초메모리 제한1024 MB

요약
바위 블록과 드로이드가 놓인 일렬의 입구에서 L, R 명령을 실행할 때 바위에 부딪히지 않는 드로이드의 위치를 구합니다.
난이도

보통10점 중 4점

유형
누적 합, 구현, 문자열
정답자
아직 제출이 없습니다

문제

한 솔로는 자신의 우주선 '밀레니엄 팰컨'을 매우 아낀다. 우주선의 안전과 경비는 그에게 중요하다. 그래서 우주선이 있는 격납고 입구를 지키려고 한 솔로가 드로이드 여러 대를 배치했다.

입구는 한 줄로 늘어선 nn개의 칸으로 나타낼 수 있다. 각 칸은 비어 있거나 돌 블록을 가진다. 빈 칸 일부에는 드로이드가 서 있다. 각 드로이드는 한 솔로가 정한 이동 알고리즘을 따라 움직인다. 이동 알고리즘은 mm개의 명령으로 이루어지며, 각 명령은 L 또는 R이다. L은 한 칸 왼쪽으로, R은 한 칸 오른쪽으로 움직이라는 뜻이다. 드로이드들은 동시에 움직이며, 서로의 움직임에 영향을 주지 않는다. 드로이드가 어느 순간 돌 블록이 있는 칸으로 이동해야 하면, 드로이드는 돌에 부딪혀 파괴된다. 파괴된 드로이드는 더 이상 움직이지 않으며, 다른 드로이드의 움직임을 막을 수도 없다.

한 솔로는 이동 알고리즘을 꼼꼼하게 짜지 않았다. 알고리즘을 모두 실행한 뒤 살아남는 드로이드가 어떤 것인지 궁금해졌다.

입력

첫 줄에 입구의 칸 수 nn과 이동 알고리즘의 길이 mm을 나타내는 두 자연수가 주어진다 (1≤n,m≤1051 \le n, m \le 10^5).

둘째 줄에는 입구의 배치를 나타내는 길이 nn의 문자열이 주어진다. 각 문자는 빈 칸 ., 돌 블록 #, 드로이드 D 중 하나이다. 입구 양옆에는 돌 블록이 있다고 가정해도 된다.

셋째 줄에는 길이 mm의 문자열이 주어진다. 각 문자는 L 또는 R이다.

출력

첫 줄에 살아남는 드로이드의 수 kk를 출력한다. 다음 줄에는 살아남는 kk개 드로이드의 위치를 오름차순으로 출력한다.

예제2

  1. 예제 1

    입력
    9 4
    #D..D.#DD
    LRLL
    
    예상 출력
    1
    5
    
  2. 예제 2

    입력
    11 5
    #D.DD..#..D
    RRRLL
    
    예상 출력
    2
    2 4