Zadanie
Farebný pásik
Počet bodov: 40
Máš pásik papiera. Tento pásik má \(p\) políčok. Na začiatku sú všetky políčka biele (majú farbu 0). Políčka si za radom očíslujeme od 1 po \(p\).
Máš \(f\) kapsúl s rôznymi farbami. Tieto farby sú očíslované od 1 po \(f\).
Máš tiež vysnívaný vzhľad svojho pásika: postupnosť farieb \(a_1, \dots, a_p\), ktorú majú mať jednotlivé políčka. (Všetky \(a_i\) sú od 1 po \(f\), žiadne políčko teda nemá ostať biele.)
Farbu z kapsuly na pásik nevieš dostať ručne, musíš na to použiť mašinu. Mašina funguje tak, že do nej vložíš kapsulu s farbou, zadáš jej dve políčka \(\ell\) a \(r\), zasunieš do nej začiatok pásika a spustíš ju. Mašina potom vcucne pásik a všetky políčka, ktorých čísla ležia v intervale \([\ell, r]\), prefarbí na farbu z kapsuly.
Každú kapsulu vieš použiť len raz.
Zisti, či sa vysnívaný pásik dá vyrobiť. Ak áno, nájdi ľubovoľnú jednu postupnosť použití mašiny, ktorá ho vyrobí.
Vstup a výstup
V prvom riadku vstupu sú čísla \(p\) a \(f\).
V prvej sade platí \(1 \leq p, f \leq 100\). V druhej sade platí \(1 \leq p, f \leq 10\,000\). V tretej sade platí \(1 \leq p, f \leq 300\,000\).
V druhom riadku vstupu sú čísla \(a_1, \dots, a_p\). Platí \(\forall i: 1 \leq a_i \leq f\).
Ak sa pásik vyrobiť nedá, vypíšte jediný riadok a v ňom číslo -1.
Ak sa pásik vyrobiť dá, vypíšte niekoľko riadkov. V prvom riadku uveďte počet \(k\) použití mašiny. Následne vypíšte \(k\) riadkov popisujúcich jednotlivé použitia mašiny v chronologickom poradí. Každý riadok musí mať tvar xi li ri, kde \(x_i\) je farba použitej kapsuly a \(\ell_i \leq r_i\) sú čísla začiatku a konca súvislého úseku políčok, ktoré má mašina touto farbou ofarbiť.
Pripomíname, že všetky \(x_i\) musia byť navzájom rôzne.
Príklady
Input:
7 10
10 5 5 10 4 2 4
Output:
5
4 1 7
7 2 4
10 1 4
5 2 3
2 6 6
Sedempolíčkový pásik, desať farieb. Návod najskôr ofarbí celý pásik farbou 4, potom tri políčka farbou 7, potom štyri políčka farbou 10, a tak ďalej.
Input:
5 2
1 2 1 2 1
Output:
-1
Pre odovzdávanie sa musíš prihlásiť.