#include <bits/stdc++.h>
using namespace std;
const int maxN = 100100;
int n, m, k;
long long t[maxN * 5];
int sl[maxN * 5];
void nhap() { cin >> n >> m >> k; }
void tang(int k, int l, int r, int i, int j, int x) {
  if (l > j || i > r) return;
  if (i <= l && r <= j) {
    t[k] += x + (l - i);
    ++sl[k];
    return;
  }
  int mid = (l + r) >> 1;
  tang(k * 2, l, mid, i, j, x);
  tang(k * 2 + 1, mid + 1, r, i, j, x);
}
void xuly() {
  int l, r, x;
  for (int i = 0; i < m; i++) {
    scanf("%i %i %i", &l, &r, &x);
    tang(1, 1, n, l, r, x);
  }
}
long long tinh(int k, int l, int r, int i) {
  long long tam = 0;
  if (i > r || i < l) return 0;
  if (l == r) return t[k] + sl[k] * (i - l);
  int mid = (l + r) >> 1;
  tam = t[k] + 1ll * (i - l) * sl[k];
  return tam + tinh(k * 2, l, mid, i) + tinh(k * 2 + 1, mid + 1, r, i);
}
void inkq() {
  int x;
  long long sum = 0;
  for (int i = 0; i < k; i++) {
    scanf("%i", &x);
    sum += tinh(1, 1, n, x);
  }
  cout << sum;
}
int main() {
  nhap();
  xuly();
  inkq();
  return 0;
}
