Алиса закончила магический многоярусный тортик из $$$n$$$ магических слоёв, где первый слой находится сверху и является самым маленьким, а $$$n$$$-й слой находится снизу и является самым большим. Теперь ей нужна ваша помощь, чтобы перевезти его из своей кухни на место проведения праздника. Поскольку переместить весь торт сразу невозможно, она также подготовила для вас склад, чтобы облегчить процесс транспортировки.
Так как торт магический, $$$i$$$-й слой торта можно перемещать тогда и только тогда, когда над ним находится ровно $$$a_i$$$ слоёв торта.
За один ход вы можете выбрать ровно один слой торта из любого места (не обязательно самый верхний), извлечь его из торта и переместить его наверх многоярусного торта в одной из двух других локаций. Однако, чтобы сохранить структуру торта, перемещаемый слой должен быть положен на слой, который строго больше его, если в месте назначения уже есть многоярусный торт. Например, нельзя положить слой размера $$$4$$$ поверх места, где уже есть слой размера $$$3$$$.
Праздник скоро начнётся, поэтому нужно действовать быстро. Помогите Алисе перевезти торт на праздник не более чем за $$$2^n$$$ ходов или сообщите, что это невозможно.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
В первой строке каждого набора входных данных дано целое число $$$n$$$ ($$$1 \le n \le 20$$$) – количество слоёв магического многоярусного торта.
Во второй строке каждого набора входных данных даны $$$n$$$ целых чисел $$$a_1,a_2,\ldots,a_n$$$ ($$$0 \leq a_i \leq n$$$), которые показывают, сколько слоёв торта должно находиться над $$$i$$$-м слоем, чтобы его можно было переместить.
Гарантируется, что сумма $$$2^n$$$ по всем наборам входных данных не превосходит $$$2^{20}$$$.
Для каждого набора входных данных, если невозможно переместить магический многоярусный торт на место проведения праздника, выведите NO.
Иначе в первой строке выведите YES.
Затем в следующей строке выведите целое число $$$k$$$ ($$$0 \leq k \leq 2^n$$$) – количество ходов, которое вы делаете, чтобы перевезти торт.
В следующих $$$k$$$ строках выведите целые числа $$$\mathrm{id}$$$, $$$\mathrm{from}$$$, $$$\mathrm{to}$$$ ($$$1 \le \mathrm{id} \le n, 1 \le \mathrm{from}, \mathrm{to} \le 3$$$): слой торта, который вы хотите переместить, его текущее место и место назначения, где $$$1$$$ обозначает кухню Алисы, $$$2$$$ обозначает склад Алисы, а $$$3$$$ обозначает место проведения праздника.
330 0 030 1 232 2 2
YES71 1 32 1 21 3 23 1 31 2 12 2 31 1 3YES33 1 32 1 31 1 3NO
Визуализация решения для наборов входных данных $$$1$$$ и $$$2$$$ показана в gif ниже:

В третьем наборе входных данных можно показать, что невозможно переместить все слои торта на место проведения праздника.