include `
const int N=1000010;
int n,m;
int a[N],b[N],d[N],l[N],r[N];
bool check(int);
int main()
{
freopen("classroom.in","r",stdin);
freopen("classroom.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=m;i++) scanf("%d%d%d",&d[i],&l[i],&r[i]);
int L=0,R=n+1,M=(L+R)>>1;
while(L!=R-1){
if(!check(M)) L=M;
else R=M;
M=(L+R)>>1;
}
if(R==n+1) printf("0");
else printf("-1\n%d",R);
fclose(stdin);
fclose(stdout);
return 0;
}
bool check(int k){
for(int i=1;i<=n;i++) b[i]=a[i]-a[i-1];
for(int i=1;i<=k;i++){
b[l[i]]-=d[i];
b[r[i]+1]+=d[i];
}
int t=0;
for(int i=1;i<=n;i++){
t+=b[i];
if(t<0) return 1;
}
return 0;
}