#include <bits/stdc++.h>
using namespace std;
long long a[100];
struct node {
  long long l;
  long long r;
  long long x;
} p[100];
bool cmp(node aa, node bb) { return aa.x > bb.x; }
int main() {
  long long n, h, m, i, ans = 0;
  cin >> n >> h >> m;
  for (i = 1; i <= n; i++) {
    a[i] = -1;
  }
  for (i = 1; i <= m; i++) {
    cin >> p[i].l >> p[i].r >> p[i].x;
  }
  sort(p + 1, p + 1 + m, cmp);
  for (i = 1; i <= m; i++) {
    for (long long j = p[i].l; j <= p[i].r; j++) {
      a[j] = min(p[i].x, h);
    }
  }
  for (i = 1; i <= n; i++) {
    if (a[i] < 0) {
      ans += h * h;
    } else {
      ans += a[i] * a[i];
    }
  }
  cout << ans << endl;
  return 0;
}
