Вы пытаетесь украсть очень ценную бриллиантовую диадему из музея. Заманчиво то, что (из-за сокращения бюджета) всех охранников заменили одним автоматическим дроном, который патрулирует главный зал музея. Однако менее заманчиво то, что этот дрон оснащен очень современным оружием, и вы, скорее всего, будете дезинтегрированы, если привлечете его внимание.
К счастью, вы подготовились и хорошо понимаете, как работает дрон. Представьте, что зал — это евклидова плоскость, разделенная на единичные квадратные ячейки. Центральная ячейка $(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$ не равно нулю.
Вторая строка содержит два числа $n, m$ ($2 \le n, m \le 2000$) — длину текущей ($T$) и целевой ($T'$) строки соответственно.
Следующие две строки содержат по одной строке длиной $n$ и $m$ соответственно, обозначающие $T$ и $T'$, состоящие только из букв N, S, E и W.
Гарантируется, что текущая и целевая последовательности различны. Более того, обе описывают некоторые замкнутые циклы, и ни один из этих циклов не пересекает $(0, 0)$ в любой момент маршрута.
Общее количество букв во всех тестовых случаях не превышает 20 000.
Выходные данные
Для каждого тестового случая, если выполнить требования задачи невозможно, выведите «NO» в одной строке. В противном случае выведите «YES», а затем описание решения на следующей строке. Решение должно состоять только из символов $\{N, S, E, W, R, C, -\}$, где каждый символ обозначает одну операцию взлома:
- Символ 'N' означает добавление «NS» в начало строки.
- Символ 'S' означает добавление «SN» в начало строки.
- Символ 'E' означает добавление «EW» в начало строки.
- Символ 'W' означает добавление «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