#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstdlib>
#include <algorithm>
#include<string.h>
#include<math.h>
#define llu unsigned long long
using namespace std;
int main()
{
cout << fixed << setprecision(0);
//cout << setw(8) << setiosflags(ios::left);
int n,p,ans=0x3f3f3f3f;
cin >> n >> p ;
int a[n+5] ,chafen[n+5] ;
a[0]=0;
for(int i=1;i<=n;i++)
{
cin >> a[i] ;//构造差分
chafen[i]=a[i]-a[i-1];
}
for(int i=0;i<p;i++)
{
int x,y,z;//只需要把最左侧元素的差分提高z,左右侧的减少z,
//中间不需要考虑
cin >> x >> y >> z ;
chafen[x]+=z;
chafen[y+1]-=z;
}
for(int i=1;i<=n;i++)
{
a[i]=a[i-1]+chafen[i];
ans=a[i]>ans?ans:a[i];
}
cout << ans << endl ;
return 0;
}