#include<bits/stdc++.h>
using namespace std;
long long r[1000011],n,m,d[1000011],s[1000011],t[1000005],as[1000005]={};
bool check(long long x)
{
memset(as,0,sizeof(as));
for(int i=1;i<=x;i++)
{
as[s[i]]+=d[i];
as[t[i]+1]-=d[i];
}
int sum=0;
for(int i=1;i<=n;i++)
{
sum+=as[i];
if(sum>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];
}
if(check(m))
{
cout<<0;
return 0;
}
long long l=1,r=m;
while(l<r)
{
int mid=(l+r)>>2;
if(check(mid))
{
l=mid+1;
}
else
{
r=mid;
}
}
cout<<-1<<endl<<l;
return 0;
}