#include<bits/stdc++.h>
using namespace std;
const int inf=1e6+5;
int n,m,ans,a[inf];
int d[inf],s[inf],t[inf];
inline int read(){
int x=0,f=0;char ch=getchar();
while(!isdigit(ch))f|=ch=='-',ch=getchar();
while(isdigit(ch))x=x*10+(ch^48),ch=getchar();
return f?-x:x;
}
inline bool check(int x){
int b[n+1];
for(int i=1;i<=n;++i)
b[i]=a[i]-a[i-1];
for(int i=1;i<=x;++i){
b[s[i]]-=d[i];
b[t[i]+1]+=d[i];
}
for(int i=1;i<=n;++i){
b[i]+=b[i-1];
if(b[i]<0)return true;
}
return false;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
n=read();m=read();
for(int i=1;i<=n;++i)
a[i]=read();
for(int i=1;i<=m;++i)
d[i]=read(),s[i]=read(),t[i]=read();
int l=1,r=m+1;
while(l<=r){
int mid=l+((r-l)>>1);
if(!check(mid))l=mid+1;
else r=mid-1,ans=mid;
//cout<<' ';
}
if(ans!=0)cout<<"-1\n";
cout<<ans;
return 0;
}
输入
10 10
42323424 633675939 990396626 965164370 965164370 965164370 972489810 619351082 619351082 0
586780256 2 9
316471206 3 7
42323424 1 3
8081621 3 9
36667522 3 7
110729 3 6
4572259 2 9
7436169 7 9
3834281 3 9
8646496 4 9
去掉注销和不去掉注销答案完全不一样,为什么呢