你試圖從博物館中竊取一顆極其珍貴的鑽石皇冠。誘人的是(由於預算削減),所有的警衛都已被替換為一台巡邏博物館主大廳的自動無人機。然而,令人卻步的是,這台無人機配備了非常現代化的武器,如果你引起了它的注意,很可能會被分解。
幸運的是,你已經做好了功課,並對無人機的運作方式有相當程度的了解。想像大廳是一個歐幾里得平面,被劃分為單位正方形網格。中心格 $(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'、'E' 和 'W' 代表在前端增加 "SN"、"EW" 和 "WE"。
- 符號 'R' 代表移除字串的前兩個字母——僅在這些字母為 "NS"、"SN"、"EW" 或 "WE" 時允許。
- 符號 'C' 代表交換前兩個字母。
- 符號 '-' 代表你等待該分鐘的剩餘時間(直到無人機移動到下一個指令)。
注意,一分鐘內可以進行多次駭客操作。你不需要最小化解決方案的長度,但動作描述的長度不得超過 $2 \cdot 10^7$ 個字元。在輸出最後一分鐘結束時,無人機的字串和位置必須與目標一致。不允許對長度為 1 或更短的字串進行移除或交換元素的操作。在任何時刻,無人機序列所描述的迴路都不能經過 $(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