#include #include #include using namespace std; int main() { int N, M; cin >> N >> M; vector L(N); for (int i = 0; i < N; i++) { cin >> L[i]; } vector F(M), B(M), W(M); for (int i = 0; i < M; i++) { cin >> F[i] >> B[i] >> W[i]; } long long answer = 0; for (int i = 0; i < M; i++) { int pos = lower_bound(L.begin(), L.end(), F[i]) - L.begin(); long long subanswer = B[i]; if (pos != N) { subanswer = max(subanswer, W[i] - (L[pos] - F[i])); } if (pos != 0) { subanswer = max(subanswer, W[i] - (F[i] - L[pos - 1])); } answer += subanswer; } cout << answer << endl; return 0; }