Попередні роки змагань включали задачі, пов'язані з кактусами — зв'язними неорієнтованими графами, у яких кожне ребро належить не більше ніж одному простому циклу. Інтуїтивно, кактус — це узагальнення дерева, яке допускає наявність певних циклів. Один із прикладів кактуса, що використовувався у задачі змагання 2005 року, наведено на другому рисунку в розділі "Приклади".
Вам дано цілих чисел d_1, d_2, \ldots, d_n. Потрібно побудувати будь-який кактус із вершинами так, щоб вершина мала ступінь d_i (тобто рівно d_i інцидентних ребер), або визначити, що такий кактус не існує. Мультиребра та петлі не допускаються.
У першому рядку записано одне ціле число (2 \le n \le 2000) — кількість вершин у кактусі. У другому рядку міститься цілих чисел d_1, d_2, \ldots, d_n (1 \le d_i \le n-1) — бажані степені вершин.
Якщо неможливо побудувати кактус, що задовольняє умовам, виведіть -1.
Інакше виведіть побудований кактус у вигляді набору реберно неперетинних шляхів.
У першому рядку виведіть ціле число — кількість таких шляхів. Кожен із наступних рядків повинен містити шлях у графі. Шлях повинен починатися з цілого числа k_i (k_i \ge 2), після якого йдуть k_i цілих чисел від до . Ці k_i чисел мають представляти послідовні вершини одного шляху. Сусідні вершини шляху повинні бути різними. Шлях може відвідувати одну й ту саму вершину декілька разів, але кожне ребро кактуса повинно бути пройдене рівно один раз у всьому виведенні.

Приклад 1
Приклад 2
Приклад 3
Приклад 4