#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<iomanip>
using namespace std;
const int N=1e6+10;
int n,m,r[N],s[N],t[N],d[N],dif[N];
bool check(int x){
int sum=0;
memset(dif,0,sizeof dif);
for(int i=1;i<=x;++i){
dif[s[i]]+=d[i];
dif[t[i]+1]-=d[i];
}
for(int i=1;i<=n;++i){
sum+=dif[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]);
int l=1,r=m;
if(check(m)){
puts("0");
return 0;
}
while(l<r){
int mid=(l+r+1)>>1;
if(check(mid)) l=mid;
else r=mid-1;
}
printf("-1\n%d\n",l+1);
return 0;
}