#include<bits/stdc++.h>
#define maxn 1000005
using namespace std;
int n,m,a[maxn],d[maxn],x[maxn],y[maxn],s[maxn],sum,ans=0;
int judge(int mid){
memset(s,0,sizeof(s));
for(int i=1;i<=mid;i++){
s[x[i]]+=d[i];
s[y[i]+1]-=d[i];
}
sum=0;
for(int i=1;i<=n;i++){
sum+=s[i];
if(sum>a[i]) return 0;
}
return 1;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&rest[i]);
for(int i=1;i<=m;i++){
scanf("%d%d%d",&d[i],&x[i],&y[i]);
}
int l=1,r=m;
while(l<=r){
int mid=(l+r)/2;
if(judge(mid))
l=mid+1;
else{
r=mid+1;
ans=mid;
}
}
if(ans==0) cout<<0<<endl;
else{
cout<<-1<<endl<<ans<<endl;
}
return 0;
}