박물관에서 매우 값비싼 다이아몬드 티아라를 훔치려 합니다. 예산 삭감으로 인해 모든 경비원이 박물관 중앙 홀을 순찰하는 단일 자동 드론으로 교체되었다는 점이 이 계획을 유혹적으로 만듭니다. 하지만 이 드론은 매우 현대적인 무기로 무장하고 있어, 드론의 주의를 끌면 산산조각이 날 가능성이 높다는 점이 이 계획을 덜 유혹적으로 만듭니다.
다행히도 당신은 사전 조사를 마쳤고 드론이 어떻게 작동하는지 잘 파악하고 있습니다. 홀은 단위 정사각형 격자로 나뉜 유클리드 평면이라고 가정합시다. 중앙 격자 $(0, 0)$에는 티아라가 있습니다. 드론은 현재 위치 $(x, y)$와 'N', 'E', 'S', 'W' 문자로 구성된 명령어 시퀀스라는 두 가지를 저장하는 간단한 처리 장치를 가지고 있습니다. 매 분마다 드론은 시퀀스의 첫 번째 글자(북, 남, 서, 동)에 따라 인접한 지점으로 이동하여 저장된 위치를 변경하고, 이 첫 번째 글자를 시퀀스의 맨 뒤로 옮겨 다음 분에 다음 글자에 접근할 수 있도록 합니다. 명령어 시퀀스가 비어 있으면 드론은 아무것도 하지 않습니다. 이 명령어들은 닫힌 루프를 설명하며, 드론은 절대 $(0, 0)$ 격자에 진입하지 않음이 보장됩니다.
현재 드론은 위치 $(x_0, y_0)$에 있고 명령어 문자열 $T$를 가지고 있습니다. 당신은 교묘한 해킹을 통해 드론의 메모리를 수정할 수 있습니다. 당신의 목표는 드론이 같은 위치 $(x_0, y_0)$에 있으면서 다른 문자열 $T'$를 가지는 상황에 도달하는 것입니다. 불행히도 당신의 해킹 전략은 다소 제한적입니다. 매 분마다 문자열의 앞 두 글자에만 접근하여 다음 작업을 원하는 만큼 수행할 수 있습니다.
- 문자열의 앞 두 글자가 "NS", "SN", "EW" 또는 "WE"인 경우에만 제거합니다.
- 문자열의 앞에 "NS", "SN", "EW" 또는 "WE" 중 두 글자를 추가합니다.
- 문자열의 앞 두 글자를 교환합니다(어떤 글자 조합이든 교환 가능).
또한 드론에는 현재 명령어 집합이 드론을 $(0, 0)$으로 이동시킬 가능성이 있는지 감지하는 충돌 감지 시스템이 구현되어 있습니다. 이 경우 경보가 울리며, 이는 어떤 수를 써서라도 피해야 하는 상황입니다.
드론을 $(x_0, y_0)$ 위치로 유지하면서 메모리에 원하는 시퀀스 $T'$를 갖게 할 해킹 작업 시퀀스를 찾으십시오.
입력
입력의 첫 번째 줄에는 테스트 케이스의 수를 나타내는 단일 정수 $z$ ($1 \le z \le 100$)가 주어집니다. 각 테스트 케이스에 대한 설명이 이어집니다.
각 테스트 케이스의 첫 번째 줄에는 드론의 초기 위치를 나타내는 두 정수 $x_0, y_0$ ($-1000 \le x_0, y_0 \le 1000$)가 주어집니다. $x_0, y_0$ 중 적어도 하나는 0이 아닙니다.
두 번째 줄에는 현재 문자열 $T$와 목표 문자열 $T'$의 길이를 나타내는 두 정수 $n, m$ ($2 \le n, m \le 2000$)이 주어집니다.
다음 두 줄에는 각각 길이 $n$과 $m$인 문자열이 주어지며, 이는 각각 $T$와 $T'$를 나타내고 'N', 'S', 'E', 'W' 문자로만 구성됩니다.
현재 시퀀스와 목표 시퀀스는 서로 다름이 보장됩니다. 또한 두 시퀀스 모두 닫힌 루프를 설명하며, 경로상의 어느 시점에서도 이 루프들이 $(0, 0)$을 통과하지 않음이 보장됩니다.
모든 테스트 케이스의 총 글자 수는 20,000을 넘지 않습니다.
출력
각 테스트 케이스에 대해, 요구 사항을 충족하는 것이 불가능하다면 한 줄에 "NO"를 출력하십시오. 그렇지 않다면 "YES"를 출력하고, 다음 줄에 솔루션 설명을 출력하십시오. 솔루션은 $\{N, S, E, W, R, -, C\}$ 기호로만 구성되어야 하며, 각 문자는 단일 해킹 작업을 나타냅니다.
- 기호 'N'은 문자열 앞에 "NS"를 추가하는 것을 의미합니다.
- 마찬가지로, 기호 'S', 'E', 'W'는 문자열 앞에 "SN", "EW", "WE"를 추가하는 것을 의미합니다.
- 기호 'R'은 문자열의 앞 두 글자를 제거하는 것을 의미합니다. 이는 해당 글자가 "NS", "SN", "EW" 또는 "WE"인 경우에만 허용됩니다.
- 기호 'C'는 앞 두 글자를 교환하는 것을 의미합니다.
- 기호 '-'는 남은 시간 동안 대기하는 것을 의미합니다(드론이 다음 명령어로 이동할 때까지).
한 분 안에 여러 번의 해킹이 가능할 수 있음에 유의하십시오. 솔루션 길이를 최소화할 필요는 없지만, 작업 설명은 $2 \cdot 10^7$자를 넘어서는 안 됩니다. 출력의 마지막 분이 끝날 때, 드론의 문자열과 위치는 원하는 것과 일치해야 합니다. 한 글자 이하인 문자열의 요소를 제거하거나 교환하는 것은 허용되지 않습니다. 드론의 시퀀스가 설명하는 루프는 어느 시점에서도 $(0, 0)$을 통과할 수 없습니다.
예제
입력 1
2 1 0 10 10 NNWWSSSEEN NWWSSSEENN -1 0 8 8 NEESSWWN SEENNWWS
출력 1
YES -C-C-R--S-C-C--- NO