#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int MAXN=1e6+5;
int n,m,r[MAXN],d[MAXN],s[MAXN],t[MAXN];
int diff[MAXN],tmp[MAXN];
bool check(int day)
{
memset(diff,0,sizeof diff);
memset(tmp,0,sizeof tmp);
for (int i=1;i<=day;i++){
diff[s[i]]+=d[i];
diff[t[i]+1]-=d[i];
}
for (int i=1;i<=n;i++)
tmp[i]=tmp[i-1]+diff[i];
for (int i=1;i<=n;i++)
if (tmp[i]>r[i]) return false;
return true;
}
int main()
{
cin>>n>>m;
for (int i=1;i<=n;i++)
scanf("%d",r+i);
int ans=0;bool flag=0;
for (int i=1;i<=m;i++)
scanf("%d%d%d",d+i,s+i,t+i);
int L=1,R=n,mid;
while (L<=R){
mid=(L+R)/2;
if (check(mid)){
ans=mid;flag=1;
L=mid+1;
}
else R=mid-1;
}
if (!flag) cout<<0<<endl;
else cout<<-1<<endl<<ans<<endl;
return 0;
}