#include<bits/stdc++.h>
using namespace std;
#define int long long
int day[10001000],r[10001000],d[10001000],s[10001000],t[10001000],book[10001000];
int kkk=0;
inline long long read() {
long long x=0,f=1;
char c=getchar();
while(c<'0'||c>'9') {
if(c=='-')f=-1;
c=getchar();
}
while(c>='0'&&c<='9') {
x=x*10+c-'0';
c=getchar();
}
return x*f;
}
signed main() {
///freopen("P1083.in","r",stdin);
int n,m;
cin>>n>>m;
for(int i=1; i<=n; i++) {
cin>>r[i];
}
for(int i=1; i<=m; i++) {
d[i]=read();
s[i]=read();
t[i]=read();
day[s[i]]+=d[i];
day[t[i]+1]-=d[i];
}
int flag=0;
for(int i=1; i<=n; i++) {
day[i]+=day[i-1];
if(r[i]<day[i]) {
flag=1;
if(!kkk) {
cout<<-1<<endl;
kkk++;
}
int hhh=r[i];
int ghgh=0;
for(int j=1; j<=n; j++) {
if(s[j]<=i&&i<=t[j]) {
hhh-=d[j];
if(hhh<=0) {
ghgh=1;
//cout<<j<<endl;
book[j]=1;
}
}
}
}
}
/*if(flag){
cout<<"-1"<<endl;
}*/
if(flag){
for(int i=1;i<=n;i++){
if(book[i]){
cout<<i+4;
return 0;
}
}
}
if(!flag) {
cout<<0<<endl;
}
return 0;
}