#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int D,N,T[201],fuku[201][3],sa,dp[201][201],ans;
bool wear[201][201];
int main(){
    cin>>D>>N;
    for(int i=0;i<D;i++){
        cin>>T[i];
    }
    for(int i=0;i<N;i++){
        cin>>fuku[i][0]>>fuku[i][1]>>fuku[i][2];
    }
    for(int i=0;i<D;i++){
        for(int j=0;j<N;j++){
            if(fuku[j][0]<=T[i]&&T[i]<=fuku[j][1])wear[i][j]=true;
        }
    }
    for(int i=1;i<D;i++){
        for(int j=0;j<N;j++){
            for(int k=0;k<N;k++){
                if(wear[i][j]&&wear[i-1][k]){
                    sa=fuku[j][2]-fuku[k][2];
                    if(sa<0)sa=sa*-1;
                    dp[i][j]=max(dp[i][j],dp[i-1][k]+sa);
                }
            }
        }
    }
    for(int i=0;i<N;i++){
        ans=max(ans,dp[D-1][i]);
    }
    cout<<ans<<endl;
}