F. Построй дерево и точка
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Деревом называется связный неориентированный граф без циклов. Обратите внимание, что в этой задаче речь идёт о некорневых деревьях.

Заданы четыре положительных целых числа $$$n, d_{12}, d_{23}$$$ и $$$d_{31}$$$. Постройте такое дерево, что:

  • оно содержит $$$n$$$ вершин, пронумерованных от $$$1$$$ до $$$n$$$,
  • расстояние (длина кратчайшего пути) от вершины $$$1$$$ до вершины $$$2$$$ равно $$$d_{12}$$$,
  • расстояние от вершины $$$2$$$ до вершины $$$3$$$ равно $$$d_{23}$$$,
  • расстояние от вершины $$$3$$$ до вершины $$$1$$$ равно $$$d_{31}$$$.

Выведите любое дерево, которое удовлетворяет всем требованиям выше, или определите, что такого дерева не существует.

Входные данные

В первой строке входных данных записано целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных в тесте.

Далее следуют $$$t$$$ наборов входных данных, каждый записан в отдельной строке.

Каждый набор состоит из четырёх положительных целых чисел $$$n, d_{12}, d_{23}$$$ и $$$d_{31}$$$ ($$$3 \le n \le 2\cdot10^5; 1 \le d_{12}, d_{23}, d_{31} \le n-1$$$).

Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных теста не превосходит $$$2\cdot10^5$$$.

Выходные данные

Для каждого набора входных данных выведите YES, если искомое дерево существует, и NO в противном случае. В случае положительного ответа выведите ещё $$$n-1$$$ строку, каждая содержит описание ребра дерева — пару положительных целых чисел $$$x_i, y_i$$$, которая обозначает, что $$$i$$$-е ребро соединяет вершины $$$x_i$$$ и $$$y_i$$$. Ребра и вершины ребер можно выводить в произвольном порядке. Если искомых деревьев несколько, выведите любое из них.

Пример
Входные данные
9
5 1 2 1
5 2 2 2
5 2 2 3
5 2 2 4
5 3 2 3
4 2 1 1
4 3 1 1
4 1 2 3
7 1 4 1
Выходные данные
YES
1 2
4 1
3 1
2 5
YES
4 3
2 5
1 5
5 3
NO
YES
2 4
4 1
2 5
5 3
YES
5 4
4 1
2 5
3 5
YES
2 3
3 4
1 3
NO
YES
4 3
1 2
2 4
NO