编程题
### 问题描述
小蓝有一个长度为 $n$ 的数组,数组的下标从 $1$ 开始。并且给定两个整数 $m,k$,小蓝可以对数组进行 $k$ 次操作,每一次操作给出三个正整数 $l,r,d$,表示将数组下标位于 $[l,r]$ 内的元素的值都加上 $d$。请问最少需要操作多少次可以使得数组内元素的最小值至少为 $m$,请注意小蓝只能按给定的操作顺序进行每一次操作。
如果操作 $k$ 次后数组内元素的最小值仍然小于 $m$,则答案为 $-1$。
### 输入格式
第一行包含两个正整数 $n,m,k$,其含义如上所述。
第二行包含 $n$ 个正整数 $a_1 \sim a_n$,表示数组中的每一个元素。
接下来 $k$ 行,每一行包含三个正整数 $l,r,d$,其含义如上所述。
### 输出格式
输出仅包含一个整数,表示答案。
### 样例输入
```text
5 3 3
0 0 0 0 0
1 5 1
1 3 2
1 5 2
```
### 样例输出
```text
3
```
### 说明
第一次操作后,原数组变为 $[1,1,1,1,1]$,最小值为 $1$,不满足条件,第二次操作后,原数组变为 $[3,3,3,1,1]$,最小值为 $1$,不满足条件,第三次操作后,原数组变为 $[5,5,5,3,3]$,最小值为 $3$,满足条件,所以答案为 $3$。
### 评测数据规模
对于 $100$% 的评测数据,$1 \leq n,k \leq 10^5$,$1 \leq a_i,d \leq 10^4$,$1 \leq m \leq 2\times10^{9}$,$1 \leq l \leq r \leq n$。