#include<cstdio>
using namespace std;
int n,m;
int r[1000001],d[1000001],s[1000001],t[1000001],b[1000001];
bool check(int num){
for(int i=1;i<=m;i++)b[s[i]]-=d[i],b[t[i]-1]+=d[i];
int a[1000001];
bool flag=true;
for(int i=1;i<=m;i++){
a[i]=a[i-1]+b[i];
if(a[i]<0)flag=false;
}
for(int i=1;i<=m;i++)b[i]=r[i]-r[i-1];
return flag;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%d",r+i),b[i]=r[i]-r[i-1];
for(int i=1;i<=m;i++)scanf("%d%d%d",d+i,s+i,t+i);
int l=1,r=m,ans;
while(l<r){
int mid=(l+r)>>1;
if(check(mid))l=mid+1,ans=mid;
else r=mid;
}
if(ans==m)printf("0");
else printf("-1\n%d",ans+1);
return 0;
}