Soal ini memiliki lampiran. Anda dapat menggunakannya untuk menyimulasikan dan memvisualisasikan pergerakan robot.
VegiCat memiliki sebuah robot pada petak dua dimensi tak hingga. Ia ingin robot tersebut bergerak dari sel $s = (s_x, s_y)$ ke sel $t = (t_x, t_y)$. Setiap sel memiliki koordinat bilangan bulat. Sel $s$ dan $t$ mungkin saja sama.
Robot tersebut mengikuti sebuah string instruksi $p$. Setiap karakter adalah L, R, U, atau D. Misalkan $|p|$ menyatakan panjang dari $p$.
Robot mulai di $s$. Sebelum mengeksekusi instruksi apa pun, Anda boleh menempatkan paling banyak $|p|$ rintangan pada sel-sel yang berbeda. Koordinat $(x, y)$ dari setiap rintangan harus memenuhi $-2 \cdot 10^9 \le x, y \le 2 \cdot 10^9$. Baik $s$ maupun $t$ tidak boleh berisi rintangan. Setiap rintangan menempati satu sel dan tetap berada di tempatnyaตลอด seluruh proses; semua sel lainnya bebas dari rintangan.
Robot mengeksekusi instruksi $p_1, p_2, \ldots, p_{|p|}$ secara berurutan. Untuk setiap instruksi, dimulai dari selnya saat ini $(x, y)$, robot bergerak mengikuti barisan sel berikut:
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 berulang kali melangkah satu petak ke arah yang ditentukan selama sel berikutnya tidak berisi rintangan. Ia berhenti tepat di sel sebelum rintangan pertama pada arah tersebut. Jika sel berikutnya pada arah yang ditentukan sudah berisi rintangan sebelum instruksi dimulai, robot tetap diam di tempat, tetapi instruksi tersebut tetap dianggap selesai. Jika tidak ada rintangan di depan pada arah tersebut, robot akan bergerak selamanya, dan penempatan tersebut tidak valid.
Robot mungkin mencapai $t$ sebelum semua instruksi selesai dijalankan. Ia tetap harus mengeksekusi semua instruksi yang tersisa. Buatlah penempatan rintangan mana pun yang memenuhi syarat di atas sehingga robot berakhir di $t$ setelah instruksi terakhir, atau laporkan bahwa tidak ada penempatan semacam itu.
Masukan
Baris pertama berisi sebuah bilangan bulat $T$ ($1 \le T \le 10^5$), banyaknya kasus uji. Deskripsi dari masing-masing kasus uji menyusul.
Baris pertama dari setiap kasus uji berisi dua bilangan bulat $s_x$ dan $s_y$ ($-10^9 \le s_x, s_y \le 10^9$), koordinat dari sel awal.
Baris kedua berisi dua bilangan bulat $t_x$ dan $t_y$ ($-10^9 \le t_x, t_y \le 10^9$), koordinat dari sel tujuan.
Baris ketiga berisi string instruksi $p$ ($1 \le |p| \le 10^5$), yang hanya terdiri dari karakter L, R, U, dan D.
Dijamin bahwa jumlah dari $|p|$ di seluruh kasus uji tidak melebihi $10^5$.
Keluaran
Untuk setiap kasus uji, keluarkan jawaban sesuai urutan masukan. Penempatan rintangan untuk kasus uji yang berbeda bersifat saling bebas.
Jika tidak ada penempatan yang valid, keluarkan NO pada satu baris tersendiri.
Selain itu, keluarkan YES pada baris pertama. Pada baris kedua, keluarkan sebuah bilangan bulat $k$ ($0 \le k \le |p|$), banyaknya rintangan.
Kemudian keluarkan $k$ baris. Baris ke-$i$ dari baris-baris ini harus berisi dua bilangan bulat $x_i$ dan $y_i$ ($-2 \cdot 10^9 \le x_i, y_i \le 2 \cdot 10^9$), yang menyatakan sebuah rintangan di sel $(x_i, y_i)$.
Semua $k$ pasangan koordinat harus berbeda, dan tidak boleh ada yang sama dengan $s$ atau $t$. Penempatan tersebut harus memungkinkan setiap instruksi selesai dan membuat robot berada di $t$ setelah instruksi terakhir. Jika terdapat beberapa solusi, keluarkan yang mana saja.
Anda dapat mengeluarkan putusan yes atau no dalam huruf besar maupun kecil. Sebagai contoh, yEs, yes, Yes, dan YES semuanya diterima sebagai respons positif.
Contoh
Masukan 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
Keluaran 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