#include <bits/stdc++.h>
using namespace std;
int n,m,le=1,ri,mid,ans,a[1000010],b[1000010],d[1000010],s[1000010],t[1000010],r[1000010];
bool check(int x)
{
memset(a,0,sizeof a);
for(int i=1;i<=x;i++)
{
a[s[i]]+=d[i];
a[t[i]+1]-=d[i];
}
for(int i=1;i<=n;i++)
{
b[i]=b[i-1]+a[i];
if(b[i]>r[i])return 1;
}
return 0;
}
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]);
}
ri=m;
if(!check(ri))
{
printf("0\n");
return 0;
}
while(le<=ri)
{
mid=(le+ri)/2;
if(check(mid))
{
//cout<<mid<<endl;
ri=mid-1;
ans=mid;
}else
{
le=mid+1;
}
}
printf("-1\n%d",ans);
return 0;
}
sample_in 4 6 1000000000 1000000000 1000000000 1000000000 1000000000 1 4 1000000000 1 4 1000000000 1 4 1000000000 1 4 1000000000 1 4 1000000000 1 4 sample_out -1 2 希望大佬们可以帮帮我