#include <bits/stdc++.h>
using namespace std;

#define reep(i,a,b) for(int i=(a);i<(b);i++)
#define rep(i,n) reep((i),0,(n))
typedef pair<int,int> pii;
#define F first
#define S second
typedef vector<int> vint;
const int INF=INT_MAX/2;
int main(){
	int D,n;
	cin>>D>>n;
	vint temp(D);
	rep(i,D) cin>>temp[i];
	vector<pair<pii,int>> v(n);
	rep(i,n) cin>>v[i].F.F>>v[i].F.S>>v[i].S;
	vector<vector<int>> dp(D,vector<int>(n,0));
	rep(i,D){
		if(!i){
			rep(j,n){
				if(v[j].F.F<=temp[i]&&temp[i]<=v[j].F.S){
					dp[i][j]=0;
				}
				else{
					dp[i][j]=-INF;
				}
			}
			continue;
		}
		rep(j,n){
			if(v[j].F.F<=temp[i]&&temp[i]<=v[j].F.S){
				rep(k,n){
					dp[i][j]=max(dp[i][j],dp[i-1][k]+abs(v[k].S-v[j].S));
				}
			}
		}
	}
	int ans=0;
	rep(i,n){
		ans=max(ans,dp[D-1][i]);
	}
	cout<<ans<<endl;
}