На числовой прямой расположены \(n\) камней. Изначально \(i\)-й камень находится в точке с координатой \(s_i\). В одной точке может находиться более одного камня одновременно.
Вы можете выполнить ноль или более операций следующего вида:
- взять два камня с индексами \(i\) и \(j\) такими, что \(s_i \leq s_j\), выбрать целое число \(d\) (\(0 \leq 2 \cdot d \leq s_j - s_i\)) и заменить координату \(s_i\) на \((s_i + d)\), а координату \(s_j\) на \((s_j - d)\). Другими словами, подвинуть камни друг к другу.
Вы хотите подвинуть камни так, чтобы они находились в позициях \(t_1, t_2, \ldots, t_n\). Порядок камней не важен — требуется лишь, чтобы мультимножество координат камней в конце совпадало с мультимножеством, состоящим из \(t_1, t_2, \ldots, t_n\).
Выясните, возможно ли сдвинуть камни требуемым образом, и если да, то найдите способ это сделать. Минимизировать число операций не нужно.
Выходные данные
В случае, если невозможно подвинуть камни требуемым образом, выведите «NO».
Иначе на первой строке выведите «YES», на второй строке выведите количество операций \(m\) (\(0 \le m \le 5 \cdot n\)), которое нужно сделать. Вам не нужно минимизировать число операций.
Затем выведите \(m\) строк, каждая из которых содержит три целых числа \(i, j, d\) (\(1 \le i, j \le n\), \(s_i \le s_j\), \(0 \leq 2 \cdot d \leq s_j - s_i\)), обозначающие операцию, которую нужно сделать.
Можно показать, что если какой-то ответ существует, то существует и ответ, использующий не более чем \(5 \cdot n\) операций.
Примечание
Рассмотрим первый пример.
- После первой операции позиции камней равны \([2, 2, 6, 5, 9]\).
- После второй операции позиции камней равны \([2, 3, 5, 5, 9]\).
- После третьей операции позиции камней равны \([2, 5, 5, 5, 7]\).
- После последней операции позиции камней равны \([4, 5, 5, 5, 5]\).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
5 2 2 7 4 9 5 4 5 5 5
|
YES
4
4 3 1
2 3 1
2 5 2
1 5 2
|
|
2
|
3 1 5 10 3 5 7
|
NO
|