Do tego zadania dołączony jest załącznik. Możesz go użyć do symulacji i wizualizacji ruchów robota.
VegiCat ma robota na nieskończonej dwuwymiarowej siatce. Chce, aby przemieścił się on z pola $s = (s_x, s_y)$ na pole $t = (t_x, t_y)$. Każde pole ma całkowite współrzędne. Pola $s$ oraz $t$ mogą być takie same.
Robot wykonuje ciąg instrukcji opisany napisem $p$. Każdy znak to L, R, U lub D. Niech $|p|$ oznacza długość napisu $p$.
Robot zaczyna na polu $s$. Zanim wykona jakąkolwiek instrukcję, możesz umieścić co najwyżej $|p|$ przeszkód na różnych polach. Współrzędne $(x, y)$ każdej przeszkody muszą spełniać warunek $-2 \cdot 10^9 \le x, y \le 2 \cdot 10^9$. Ani na polu $s$, ani na polu $t$ nie może znajdować się przeszkoda. Każda przeszkoda zajmuje jedno pole i pozostaje nieruchoma przez cały proces; wszystkie pozostałe pola są wolne od przeszkód.
Robot wykonuje instrukcje $p_1, p_2, \ldots, p_{|p|}$ po kolei. Dla każdej instrukcji, zaczynając z bieżącego pola $(x, y)$, porusza się wzdłuż następującego ciągu pól:
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$.
Robot wielokrotnie wykonuje jeden krok we wskazanym kierunku, dopóki następne pole nie zawiera przeszkody. Zatrzymuje się na polu bezpośrednio przed pierwszą przeszkodą w tym kierunku. Jeśli następne pole we wskazanym kierunku zawiera już przeszkodę przed rozpoczęciem instrukcji, robot pozostaje w miejscu, ale instrukcja i tak zostaje uznana za wykonaną. Jeśli w tym kierunku przed robotem nie ma żadnej przeszkody, robot poruszałby się w nieskończoność, a takie rozmieszczenie jest nieprawidłowe.
Robot może dotrzeć na pole $t$ przed wykonaniem wszystkich instrukcji. Mimo to musi wykonać wszystkie pozostałe instrukcje. Skonstruuj dowolne rozmieszczenie przeszkód spełniające powyższe wymagania, tak aby po ostatniej instrukcji robot zakończył ruch na polu $t$, albo stwierdź, że takie rozmieszczenie nie istnieje.
Wejście
Pierwszy wiersz zawiera liczbę całkowitą $T$ ($1 \le T \le 10^5$), oznaczającą liczbę przypadków testowych. Poniżej znajduje się opis przypadków testowych.
Pierwszy wiersz każdego przypadku testowego zawiera dwie liczby całkowite $s_x$ oraz $s_y$ ($-10^9 \le s_x, s_y \le 10^9$), oznaczające współrzędne pola początkowego.
Drugi wiersz zawiera dwie liczby całkowite $t_x$ oraz $t_y$ ($-10^9 \le t_x, t_y \le 10^9$), oznaczające współrzędne pola docelowego.
Trzeci wiersz zawiera napis instrukcji $p$ ($1 \le |p| \le 10^5$), składający się wyłącznie ze znaków L, R, U oraz D.
Gwarantowane jest, że suma $|p|$ po wszystkich przypadkach testowych nie przekracza $10^5$.
Wyjście
Dla każdego przypadku testowego wypisz odpowiedź w kolejności zgodnej z wejściem. Rozmieszczenia przeszkód dla różnych przypadków testowych są od siebie niezależne.
Jeśli nie istnieje żadne poprawne rozmieszczenie, wypisz NO w osobnym wierszu.
W przeciwnym razie wypisz YES w pierwszym wierszu. W drugim wierszu wypisz liczbę całkowitą $k$ ($0 \le k \le |p|$), oznaczającą liczbę przeszkód.
Następnie wypisz $k$ wierszy. $i$-ty z tych wierszy musi zawierać dwie liczby całkowite $x_i$ oraz $y_i$ ($-2 \cdot 10^9 \le x_i, y_i \le 2 \cdot 10^9$), oznaczające przeszkodę na polu $(x_i, y_i)$.
Wszystkie $k$ par współrzędnych musi być parami różnych i żadna nie może być równa $s$ ani $t$. Rozmieszczenie musi pozwalać na zakończenie każdej instrukcji i pozostawić robota na polu $t$ po ostatniej instrukcji. Jeśli istnieje wiele rozwiązań, wypisz dowolne z nich.
Odpowiedź yes lub no możesz wypisać dowolną wielkością liter. Na przykład yEs, yes, Yes oraz YES są akceptowane jako odpowiedzi twierdzące.
Przykład
Wejście 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
Wyjście 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