#include<iostream>
#include<vector>
#include<numeric>
#include<algorithm>
using namespace std;
int main(){
int n,p;
cin >> n >> p;
vector<int>score(n);
for ( int i = 0; i < n; i++){
cin >> score[i];
}
vector<int>adjacency(score.size());
adjacent_difference(score.begin(),score.end(),adjacency.begin());
int x,y,z;
while(p--){
cin >> x >> y >> z;
adjacency[x - 1] += z;
adjacency[y] -= z;
}
vector<int>ans(adjacency.size());
partial_sum(adjacency.begin(),adjacency.end(),ans.begin());
sort(ans.begin(),ans.end());
cout << ans[0] << endl;
return 0;
}