#include <bits/stdc++.h>
using namespace std;
const int MaxN = 2e5;
const int MaxM = 2e5;
const int MaxW = 100;
int N, M,s,e,w;
int need[MaxN+1];
int add[MaxN+2]={};
int t[MaxN+1];
int main() {
cin >> N >> M;
for (int m = 1; m <= M; m++) {
cin >> s >> e >> w;
add[ s ] += w;
add[e + 1] -= w;
}
for (int n = 1; n <= N; n++)
cin >> t[n];
sort(t+1,t+N+1);
need[0]=0;
for (int n = 1; n <= N; n++) {
need[n] += need[n-1] + add[n];
}
sort(need + 1, need + N + 1);
long ans = 0;
for (int n = 1; n <= N; n++) {
ans += t[n]*need[N+1-n];
}
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTWF4TiA9IDJlNTsKY29uc3QgaW50IE1heE0gPSAyZTU7CmNvbnN0IGludCBNYXhXID0gMTAwOwppbnQgTiwgTSxzLGUsdzsKaW50IG5lZWRbTWF4TisxXTsKaW50IGFkZFtNYXhOKzJdPXt9OwppbnQgdFtNYXhOKzFdOwoKCmludCBtYWluKCkgewogICAgY2luID4+IE4gPj4gTTsKCiAgICBmb3IgKGludCBtID0gMTsgbSA8PSBNOyBtKyspIHsKICAgICAgICBjaW4gPj4gcyA+PiBlID4+IHc7CiAgICAgICAgYWRkWyBzIF0gKz0gdzsKICAgICAgICBhZGRbZSArIDFdIC09IHc7CiAgICB9CiAgICBmb3IgKGludCBuID0gMTsgbiA8PSBOOyBuKyspCiAgICAgICAgY2luID4+IHRbbl07CiAgICBzb3J0KHQrMSx0K04rMSk7CiAgICBuZWVkWzBdPTA7CiAgICAKICAgIGZvciAoaW50IG4gPSAxOyBuIDw9IE47IG4rKykgewogICAgICAgIG5lZWRbbl0gKz0gbmVlZFtuLTFdICsgYWRkW25dOwogICAgfQogICAgc29ydChuZWVkICsgMSwgbmVlZCArIE4gKyAxKTsKCglsb25nIGFucyA9IDA7CiAgICBmb3IgKGludCBuID0gMTsgbiA8PSBOOyBuKyspIHsKICAgICAgIGFucyArPSB0W25dKm5lZWRbTisxLW5dOyAKICAgIH0KICAgIGNvdXQgPDwgYW5zOwoKICAgIHJldHVybiAwOwp9