#include #include #include #include #include #include #include #include #include #include #include #include #include #include // std::stringstream #include #include using namespace atcoder; using mint = modint998244353; //using mint = modint1000000007; using namespace std; using ll = long long; static const double pi = 3.141592653589793; const int INF = (1 << 29); const ll mod = 998244353; // ifstream ifs(""); ファイルはワークスペースのトップにおく int main() { int n,m; cin >> n >> m; vector L(n); for(int i=0;i> L[i]; ll ans = 0; while(m--){ int f,b,w; cin >> f >> b >> w; int mm = lower_bound(L.begin(),L.end(),f)-L.begin(); int l = mm - 1; int u = mm + 1; if(l<0 ) l++; if(mm==n) mm--; if(u==n) u--; int cost = min(abs(f-L[l]),min(abs(f-L[mm]),abs(f-L[u]))); if(cost == 0){ //湖にいる ans += w; }else{ //陸にいる ans += max(w-cost,b); } } cout << ans << endl; }