P11080 [ROI 2019] 拍照 (Day 1)
题目背景
翻译自 [ROI 2019 D1T1](https://neerc.ifmo.ru/school/archive/2018-2019/ru-olymp-roi-2019-day1.pdf)。
参加奥林匹克竞赛的学生来自 $n$ 个地区,每个地区的代表团由 $m$ 名学生组成。每个代表团的学生穿着有自己地区特色的衣服,第 $i$ 个代表团穿的衣服颜色编号为 $i$。
摄影师决定给所有参赛者拍一张照片。为了组织拍摄照片,摄影师计划按以下方式进行操作:
舞台上有一排学生站立的位置,他们沿着舞台从 $1$ 到 $m$ 进行编号。摄影师计划轮流找一些代表团的领队,要求该代表团的几名学生上台。摄影师指定 $L$ 和 $R$ 的值,选中的代表团的学生上台并站在从第 $L$ 个到第 $R$ 个(包括 $L$ 和 $R$)的所有位置上。如果这个位置上已经站了一名学生,则将这名学生请下台,让新的学生站上来。每个代表团的领队只能被摄影师找一次。
题目描述
为了在照片上的色彩更加和谐,摄影师希望照片上应该有 $m$ 名学生,而且穿着的衣服颜色必须按照给定的顺序排列。现在他想知道如何才能得到所需的照片。
编写一个程序,根据给定的颜色顺序,确定摄影师要找的代表团编号以及他们应该占据的位置的顺序,以制作期望中的照片。如果不可能,输出 `-1`。
输入格式
第一行包含两个整数 $m$ 和 $n$。
第二行包含 $m$ 个整数 $a_1,a_2,\dots,a_m$($1\le a_i\le n$),表示摄影师希望照片上的学生衣服颜色的顺序。
输出格式
输出的第一行应包含一个整数 $k$。如果无法拍出期望的照片,则此数字应为 $-1$。否则,它应该是摄影师需要找的代表团的数量,以便拍出期望的照片。
当 $k\ne-1$ 时,接下来的 $k$ 行应按照它们应该进行的顺序输出摄影师的请求。第 $i$ 个请求由三个整数 $c_i,L_i,R_i$ 表示,其中 $c_i$ 是代表团的编号,$L_i$ 和 $R_i$ 分别是代表团 $c_i$ 的学生应该占据的舞台上第一个和最后一个位置的编号。所有 $c_i$ 必须不同。
如果有多个解决方案,可以输出其中任意一个。
说明/提示
样例 $1$ 解释:
如果按照输出中的顺序让代表团的学生上台,那么每让一个代表团的学生上台后,舞台上的学生应该是这样排列的:
1. $4\ 4\ 4\ 4\ 4\ 4\ 4$;
2. $4\ 7\ 7\ 7\ 4\ 4\ 4$;
3. $10\ 10\ 10\ 10\ 4\ 4\ 4$;
4. $10\ 5\ 5\ 10\ 4\ 4\ 4$;
5. $10\ 5\ 5\ 10\ 4\ 2\ 4$。
| 子任务 | 分值 | $m\le$ | $n\le$ |
| :----------: | :----------: | :----------: | :----------: |
| $1$ | $15$ | $100$ | $100$ |
| $2$ | $15$ | $10^4$ | $10^4$ |
| $3$ | $5$ | $3\times10^5$ | $2$ |
| $4$ | $5$ | $3\times10^5$ | $3$ |
| $5$ | $20$ | $3\times10^5$ | $10$ |
| $6$ | $40$ | $3\times10^5$ | $3\times10^5$ |