#include<bits/stdc++.h>
using namespace std;
int n,m,ans,qzh[1000011],cf[1000005],r[1000005],d[1000005],s[1000005],t[1000005];
bool f(int x){
memset(qzh,0,sizeof(qzh));
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++){
qzh[i]=qzh[i-1]+cf[i];
if(qzh[i]>r[i]) return 0;
}
return 1;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>r[i];
for(int i=1;i<=m;i++) cin>>d[i]>>s[i]>>t[i];
int left=1,right=m;
if(f(m)){
cout<<"0";
return 0;
}
while(left<right){
int mid=(left+right)/2;
if(f(mid)) left=mid+1;
else right=mid;
}
cout<<"-1"<<endl<<ans;
}