#include <bits/stdc++.h>
#define maxn 1000003
using namespace std;
int n,m,l,r,mid,c[maxn],d[maxn],s[maxn],t[maxn],z[maxn];
bool check(int x){
memset(z,0,sizeof(z));
for(int i = 1;i <= x;i ++){
z[s[i]] -= d[i];
z[t[i] + 1] += d[i];
}
for(int i = 1;i <= n;i ++){
z[i] += z[i - 1];
if(z[i] + c[i] < 0) return 0;
}
return 1;
}
int main(){
scanf("%d%d",&n,&m);
for(int i = 1;i <= n;i ++) scanf("%d",&c[i]);
for(int i = 1;i <= m;i ++) scanf("%d%d%d",&d[i],&s[i],&t[i]);
l = 1;r = m + 1;
while(l <= r){
mid = l + r >> 1;
if(check(mid)) l = mid + 1;
else r = mid - 1;
}
if(r == m + 1) cout << 0;
else cout << -1 << endl << r + 1 << endl;
return 0;
}