#include <bits/stdc++.h>
using namespace std;
long long d[1000010],a[1000010],s[1000010],t[1000010],c[1000010],b[100010],n;
bool check(int x);
int main(){
int m;
cin>>n>>m;
for(int i = 1;i <= n;i++){
cin>>a[i];
d[i] = a[i]-a[i-1];
}
for(int i = 1;i <= m;i++){
cin>>c[i]>>s[i]>>t[i];
d[s[i]] -= c[i];
d[t[i]+1] += c[i];
}
bool flag = 1;
for(int i = 1;i <= n;i++){
b[i] = b[i-1] + d[i];
if(b[i] < 0){
cout<<-1<<endl;
flag = 0;
break;
}
}
if(flag){
cout<<0;
return 0;
}
int l = 1,r = m,ans = 0;
while(l < r){
int mid = (l+r)>>1;
if(check(mid)) l = mid+1;
else r = mid,ans = mid;
}
cout<<ans;
return 0;
}
bool check(int x){
for(int i = 1;i <= n;i++){
d[i] = a[i]-a[i-1];
}
for(int i = 1;i <= x;i++){
d[s[i]] -= c[i];
d[t[i]+1] += c[i];
}
for(int i = 1;i <= n;i++){
b[i] = b[i-1] + d[i];
if(b[i] < 0) return 0;
}
return 1;
}