Наомі вивчила червоно-чорні дерева, а тепер настав час розібратися з біло-чорними деревами. Вона читає книгу з алгоритмів, де на деяких сторінках зображені дерева, але їхні ребра з часом зникли. Згідно з текстом, кожне з цих ребер повинно бути або білим, або чорним.
Наомі помітила, що біля кожної вершини вказано два цілі числа. Вона припустила, що перше число — це кількість білих ребер, інцидентних до вершини, а друге — кількість чорних ребер, інцидентних до вершини.
Наомі відновила всі зображення. Чи зможете ви зробити те ж саме?
Перша строка містить ціле число — кількість зображень, які потрібно відновити (1 \le t \le 3 \cdot 10^5).
Наступні строки описують зображень. Кожен опис починається зі строки, що містить ціле число — кількість вершин у дереві (1 \le n \le 3 \cdot 10^5).
-та з наступних строк опису зображення містить два цілі числа w_i та b_i — два цілі числа, написані біля -ї вершини дерева: кількість білих та чорних ребер, інцидентних до -ї вершини (0 \le w_i, b_i \le n - 1).
Гарантовано, що сума по всіх зображеннях не перевищує 3 \cdot 10^5.
Виведіть блоків виходу, -й з яких повинен містити інформацію про відновлення зображення .
У першій строці кожного блоку виведіть "No", якщо немає способу, і "Yes", якщо є хоча б один спосіб відновити зображення. Якщо є спосіб відновити зображення дерева, виведіть додатково n - 1 строк, кожна з яких містить два цілі числа та літеру 'W' для білого або 'B' для чорного: v_i, u_i та c_i, що визначають ребро між вершинами v_i та u_i кольору c_i (1 \le v_i, u_i \le n; c_i є або 'W', або 'B').
Якщо є кілька способів відновити зображення, ви можете вивести будь-який з них. Ребра дерева можуть бути виведені в будь-якому порядку.
Приклад 1