책 텍스트와 칠해진 칸 그림이 주어질 때, 펜 이동으로 그 그림을 평행이동까지 정확히 그리는 가장 앞선 연속 구간을 찾는다.
보통7문자열 매칭해시맵시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한256 MB유진이는 지루한 책을 읽고 있다. 읽는 동안 심심하지 않도록 그림도 같이 그린다. 유진이에게는 정사각형 칸으로 나뉜 모눈종이가 있고, 처음에는 모든 칸이 비어 있다.
유진이는 먼저 칸 하나를 색칠한다. 그다음 책의 아무 페이지나 펼쳐서 읽기 시작한다. 글자 u를 볼 때마다 펜을 한 칸 위로 옮기고 펜이 놓인 칸을 색칠한다. 글자 d를 보면 똑같이 하되 펜을 한 칸 아래로 옮긴다. 글자 l과 r을 보면 각각 왼쪽과 오른쪽으로 한 칸 옮긴다. 나머지 글자와 공백, 쉼표, 마침표에서는 아무것도 하지 않는다. 이미 색칠한 칸을 다시 색칠할 수도 있다.
그림이 그려진 종이와 책의 본문을 찾았다. 유진이가 책을 읽던 어느 시점에 이 그림을 그릴 수 있었는지 판별하려고 한다. 유진이가 읽은 부분은 본문의 연속한 일부일 수도 있다. 유진이가 맨 처음 색칠한 칸이 어디였는지는 알 수 없으므로, 색칠된 칸의 집합이 주어진 그림과 평행이동으로 정확히 일치하면 그릴 수 있었다고 본다.
첫째 줄에 본문의 길이 l이 주어진다 (1≤l≤100000).
둘째 줄에 길이가 l인 본문이 주어진다. 본문은 영어 소문자와 공백, 쉼표, 마침표로만 이루어져 있고, 공백으로 시작하거나 끝나지 않는다.
셋째 줄에 그림의 크기를 나타내는 두 양의 정수 n과 m이 주어진다 (2≤n×m≤100000).
이어지는 n개의 줄에는 길이가 m인 문자열이 주어진다. 색칠된 칸은 X, 빈 칸은 .이다. 색칠된 칸은 두 개 이상임이 보장된다.
이 n개의 줄 중 첫 줄이 그림의 맨 위, 마지막 줄이 맨 아래에 해당한다.
유진이가 그림을 그릴 수 있었다면 첫째 줄에 YES를 출력한다. 둘째 줄에는 두 정수 b와 e를 출력한다 (1≤b≤e≤l). 본문의 b번째 글자부터 e번째 글자까지 차례로 읽었을 때 색칠되는 칸이 주어진 그림과 평행이동으로 정확히 일치해야 한다. 조건을 만족하는 (b,e)가 여러 개면 b가 가장 작은 것을 출력하고, 그런 것이 여러 개면 그중 e가 가장 작은 것을 출력한다.
그릴 수 없었다면 NO를 출력한다.