`#include[HTML_REMOVED]
include[HTML_REMOVED]
define N 1000010
int n,m,i;
int w[N];
int d[N],s[N],t[N];
long long b[N];
int check(int mid)
{
memset(b,0,sizeof(b));
for(i=1;i<=mid;i++)
{
b[s[i]]+=d[i];
b[t[i]+1]-=d[i];
}
for(i=1;i<=n;i++)
{
b[i]+=b[i-1];
if(b[i]>w[i])return 1;
}
return 0;
}
int main()
{
scanf(“%d %d”,&n,&m);
for(i=1;i<=n;i)
scanf(“%d”,&w[i]);
for(i=1;i<=m;i)
scanf(“%d %d %d”,&d[i],&s[i],&t[i]);
int l=1,r=m;
while(l<r)
{
int mid=(l+r)/2;
if(check(mid))r=mid;
else
l=mid+1;
}
check(r)?printf(“-1\n%d”,r):puts(“0”);
return 0;
}`