本題附有附件。你可以使用它來模擬並視覺化機器人的移動過程。
VegiCat 在一個無限大的二維網格上有一個機器人。他希望機器人從格子 $s = (s_x, s_y)$ 移動到格子 $t = (t_x, t_y)$。每個格子的座標皆為整數。格子 $s$ 與 $t$ 可以相同。
機器人依照指令字串 $p$ 行動。每個字元為 L、R、U 或 D。令 $|p|$ 表示 $p$ 的長度。
機器人從 $s$ 出發。在它執行任何指令之前,你可以在不同的格子中放置至多 $|p|$ 個障礙物。每個障礙物的座標 $(x, y)$ 必須滿足 $-2 \cdot 10^9 \le x, y \le 2 \cdot 10^9$。$s$ 與 $t$ 皆不可包含障礙物。每個障礙物佔據一個格子,並在整個過程中保持固定;其餘所有格子皆無障礙物。
機器人依序執行指令 $p_1, p_2, \ldots, p_{|p|}$。對於每條指令,從目前所在的格子 $(x, y)$ 出發,它會沿著以下格子序列移動:
L: $(x, y) \to (x - 1, y) \to (x - 2, y) \to \cdots$;R: $(x, y) \to (x + 1, y) \to (x + 2, y) \to \cdots$;U: $(x, y) \to (x, y + 1) \to (x, y + 2) \to \cdots$;D: $(x, y) \to (x, y - 1) \to (x, y - 2) \to \cdots$.
只要指定方向上的下一個格子沒有障礙物,機器人就會不斷朝該方向前進一步。它會停在該方向上第一個障礙物正前方的格子裡。如果在該指令開始前,指定方向上的下一個格子已經包含障礙物,則機器人留在原地,但該指令仍然視為執行完畢。如果該方向前方沒有任何障礙物,機器人將永遠移動下去,此時障礙物放置方案無效。
機器人可能在所有指令執行完畢之前就已經到達 $t$。它仍然必須執行完所有剩餘的指令。請構造任意一種滿足上述要求的障礙物放置方案,使得機器人在執行完最後一條指令後停在 $t$,或者報告不存在這樣的放置方案。
輸入格式
第一行包含一個整數 $T$($1 \le T \le 10^5$),代表測試資料組數。接下來是各組測試資料的描述。
每組測試資料的第一行包含兩個整數 $s_x$ 與 $s_y$($-10^9 \le s_x, s_y \le 10^9$),代表起點格子的座標。
第二行包含兩個整數 $t_x$ 與 $t_y$($-10^9 \le t_x, t_y \le 10^9$),代表目標格子的座標。
第三行包含指令字串 $p$($1 \le |p| \le 10^5$),僅由字元 L、R、U 與 D 組成。
保證所有測試資料中 $|p|$ 的總和至多為 $10^5$。
輸出格式
對於每組測試資料,依輸入順序輸出答案。不同測試資料的障礙物放置方案彼此獨立。
若不存在合法的放置方案,單獨輸出一行 NO。
否則,在第一行輸出 YES。在第二行輸出一個整數 $k$($0 \le k \le |p|$),代表障礙物的數量。
接著輸出 $k$ 行。其中第 $i$ 行必須包含兩個整數 $x_i$ 與 $y_i$($-2 \cdot 10^9 \le x_i, y_i \le 2 \cdot 10^9$),代表在格子 $(x_i, y_i)$ 放置一個障礙物。
所有 $k$ 個座標對必須互不相同,且皆不得等於 $s$ 或 $t$。該放置方案必須讓每條指令都能結束,並在最後一條指令結束後讓機器人停在 $t$。若存在多種合法解,輸出任意一種即可。
你可以用任意大小寫形式輸出 yes 或 no 的判定結果。例如,yEs、yes、Yes 與 YES 皆會被接受為肯定的回答。
範例
輸入格式 1
6 0 0 1 0 RL 0 0 -1 0 URD 0 0 8 0 RLR 0 0 0 0 UDUD 0 0 2 5 RDULR 0 0 1 1 RURURU
輸出格式 1
NO NO YES 2 -1 0 9 0 YES 2 0 -1 0 1 YES 5 -1 5 2 -1 2 6 3 0 3 5 YES 3 1 2 2 0 2 1