#include<bits/stdc++.h>
using namespace std;
int n,m;
int r[1000005],d[1000005],s[1000005],t[1000005],cf[1000005];
bool judge(int x){
memset(cf,0,sizeof(cf));
int sum=0;
for(int i=1;i<=x;i++){
cf[s[i]]+=d[i];
cf[t[i]+1]-=d[i];
}
for(int i=1;i<=n;i++){
sum+=cf[i];
if(sum>r[i])
return false;
}
return true;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&r[i]);
for(int i=1;i<=m;i++)
scanf("%d%d%d",&d[i],&s[i],&t[i]);
if(judge(m)==true){
cout<<'0';
return 0;
}
int l=1;
int r=m;
while(l<r){
int mid=(l+r)/2;
if(judge(mid)==true)
l=mid+1;
else
r=mid;
}
cout<<"-1"<<endl<<l;
return 0;
}
为啥错了!!!