#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+10;

int n,m,r[N];
int d[N],s[N],t[N];

bool check(int mid){
	vector<int> diff(n+2,0);
	for(int i=1;i<=mid;i++){
		diff[s[i]]+=d[i];
		diff[t[i]+1]-=d[i];
	}
	int need=0;
	for(int i=1;i<=n;i++){
		need+=diff[i];
		if(need>r[i]){
			return false;
		}
	}
	return true;
}

void solve(){
	
	int l=1,r=m,mid;
	int res=0;
	
	while(l<=r){
		mid=l+r>>1;
		if(check(mid)){
			l=mid+1;
			res=mid;
		}else{
			r=mid-1;
		}
	}
	if(res==m){
		cout<<0<<endl;
	}else{
		cout<<res+1<<endl;
	}
	return;
}

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	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];
	}
	
	solve();

    return 0;
}