#include <bits/stdc++.h>
using namespace std;
struct data {
  long long l, r, a, dp;
} p[2005];
long long n, i, k, x, res;
int main() {
  scanf("%lld%lld", &n, &k);
  for (i = 1; (i - 1) ^ n; i++)
    scanf("%lld%lld%lld", &p[i].l, &p[i].r, &p[i].a), p[i].dp = 0;
  for (i--; i + 1; i--) {
    x = p[i].a;
    if ((i ^ n) && p[i].r == p[i + 1].l) x += p[i + 1].dp;
    if (k * (p[i].r - p[i].l + 1) < x) {
      puts("-1");
      return 0;
    }
    p[i].dp = max(0ll, x - (p[i].r - p[i].l) * k);
  }
  x = k;
  for (i++; (i - 1) ^ n; i++) {
    if (x < p[i].dp) {
      res += x;
      x = k;
    }
    res += p[i].a;
    x = ((x - p[i].a) % k + k) % k;
  }
  printf("%lld", res);
}
