#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5+5;
struct TopK {
int M;
multiset<ll> ms, res;
ll sum;
TopK(int m) : M(m), sum(0) {}
void insert(ll v) {
if (M <= 0) return;
if ((int)ms.size() < M) {
ms.insert(v);
sum += v;
} else {
ll Min = *ms.begin();
if (v > Min) {
ms.erase(ms.begin());
sum -= Min;
res.insert(Min);
ms.insert(v);
sum += v;
} else res.insert(v);
}
}
void erase(ll v) {
if (M <= 0) return;
auto it = res.find(v);
if (it != res.end()) res.erase(it);
else {
auto it2 = ms.find(v);
if (it2 != ms.end()) {
sum -= v;
ms.erase(it2);
if (!res.empty()) {
auto it_max = prev(res.end());
ll Max = *it_max;
ms.insert(Max);
sum += Max;
res.erase(it_max);
}
}
}
}
};
struct Event {
ll t;
int op, id;
bool operator<(const Event& o) const {
if (t != o.t) return t < o.t;
return op < o.op;
}
};
int n, m;
ll a[N], b[N], s[N], f[N];
void solve() {
cin >> n >> m;
vector<Event> events;
for (int i = 0; i < n; i++) {
cin >> a[i] >> b[i] >> s[i] >> f[i];
events.push_back({s[i], 1, i});
events.push_back({f[i], -1, i});
}
sort(events.begin(), events.end());
TopK manager(m);
ll ans = 0, base = 0, last = 0;
int i = 0, N = events.size();
while (i < N) {
ll cur = events[i].t;
if (i > 0 && cur > last) ans += (cur - last) * (base + manager.sum);
while (i < N && events[i].t == cur) {
int id = events[i].id;
ll d = a[id] - b[id];
if (events[i].op == 1) {
base += b[id];
if (d > 0) manager.insert(d);
} else {
base -= b[id];
if (d > 0) manager.erase(d);
}
i++;
}
last = cur;
}
cout << ans << '\n';
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
#define TASK "ORCONF"
if (fopen(TASK".INP", "r")) {
freopen(TASK".INP", "r", stdin);
freopen(TASK".OUT", "w", stdout);
}
int tests = 1; // cin >> tests;
while (tests--) solve();
#ifndef ONLINE_JUDGE
cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVzaW5nIGxsID0gbG9uZyBsb25nOwoKY29uc3QgaW50IE4gPSAxZTUrNTsKCnN0cnVjdCBUb3BLIHsKICAgIGludCBNOwogICAgbXVsdGlzZXQ8bGw+IG1zLCByZXM7CiAgICBsbCBzdW07CiAgICBUb3BLKGludCBtKSA6IE0obSksIHN1bSgwKSB7fQogICAgdm9pZCBpbnNlcnQobGwgdikgewogICAgICAgIGlmIChNIDw9IDApIHJldHVybjsKICAgICAgICBpZiAoKGludCltcy5zaXplKCkgPCBNKSB7CiAgICAgICAgICAgIG1zLmluc2VydCh2KTsKICAgICAgICAgICAgc3VtICs9IHY7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbGwgTWluID0gKm1zLmJlZ2luKCk7CiAgICAgICAgICAgIGlmICh2ID4gTWluKSB7CiAgICAgICAgICAgICAgICBtcy5lcmFzZShtcy5iZWdpbigpKTsKICAgICAgICAgICAgICAgIHN1bSAtPSBNaW47CiAgICAgICAgICAgICAgICByZXMuaW5zZXJ0KE1pbik7CgogICAgICAgICAgICAgICAgbXMuaW5zZXJ0KHYpOwogICAgICAgICAgICAgICAgc3VtICs9IHY7CiAgICAgICAgICAgIH0gZWxzZSByZXMuaW5zZXJ0KHYpOwogICAgICAgIH0KICAgIH0KICAgIHZvaWQgZXJhc2UobGwgdikgewogICAgICAgIGlmIChNIDw9IDApIHJldHVybjsKICAgICAgICBhdXRvIGl0ID0gcmVzLmZpbmQodik7CiAgICAgICAgaWYgKGl0ICE9IHJlcy5lbmQoKSkgcmVzLmVyYXNlKGl0KTsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgYXV0byBpdDIgPSBtcy5maW5kKHYpOwogICAgICAgICAgICBpZiAoaXQyICE9IG1zLmVuZCgpKSB7CiAgICAgICAgICAgICAgICBzdW0gLT0gdjsKICAgICAgICAgICAgICAgIG1zLmVyYXNlKGl0Mik7CiAgICAgICAgICAgICAgICBpZiAoIXJlcy5lbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgYXV0byBpdF9tYXggPSBwcmV2KHJlcy5lbmQoKSk7CiAgICAgICAgICAgICAgICAgICAgbGwgTWF4ID0gKml0X21heDsKICAgICAgICAgICAgICAgICAgICBtcy5pbnNlcnQoTWF4KTsKICAgICAgICAgICAgICAgICAgICBzdW0gKz0gTWF4OwogICAgICAgICAgICAgICAgICAgIHJlcy5lcmFzZShpdF9tYXgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9OwoKc3RydWN0IEV2ZW50IHsKICAgIGxsIHQ7CiAgICBpbnQgb3AsIGlkOwogICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgRXZlbnQmIG8pIGNvbnN0IHsKICAgICAgICBpZiAodCAhPSBvLnQpIHJldHVybiB0IDwgby50OwogICAgICAgIHJldHVybiBvcCA8IG8ub3A7CiAgICB9Cn07CgppbnQgbiwgbTsKbGwgYVtOXSwgYltOXSwgc1tOXSwgZltOXTsKCnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgdmVjdG9yPEV2ZW50PiBldmVudHM7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGNpbiA+PiBhW2ldID4+IGJbaV0gPj4gc1tpXSA+PiBmW2ldOwogICAgICAgIGV2ZW50cy5wdXNoX2JhY2soe3NbaV0sIDEsIGl9KTsKICAgICAgICBldmVudHMucHVzaF9iYWNrKHtmW2ldLCAtMSwgaX0pOwogICAgfQogICAgc29ydChldmVudHMuYmVnaW4oKSwgZXZlbnRzLmVuZCgpKTsKICAgIFRvcEsgbWFuYWdlcihtKTsgCiAgICBsbCBhbnMgPSAwLCBiYXNlID0gMCwgbGFzdCA9IDA7CiAgICBpbnQgaSA9IDAsIE4gPSBldmVudHMuc2l6ZSgpOwogICAgd2hpbGUgKGkgPCBOKSB7CiAgICAgICAgbGwgY3VyID0gZXZlbnRzW2ldLnQ7CiAgICAgICAgaWYgKGkgPiAwICYmIGN1ciA+IGxhc3QpIGFucyArPSAoY3VyIC0gbGFzdCkgKiAoYmFzZSArIG1hbmFnZXIuc3VtKTsKICAgICAgICB3aGlsZSAoaSA8IE4gJiYgZXZlbnRzW2ldLnQgPT0gY3VyKSB7CiAgICAgICAgICAgIGludCBpZCA9IGV2ZW50c1tpXS5pZDsKICAgICAgICAgICAgbGwgZCA9IGFbaWRdIC0gYltpZF07CiAgICAgICAgICAgIGlmIChldmVudHNbaV0ub3AgPT0gMSkgewogICAgICAgICAgICAgICAgYmFzZSArPSBiW2lkXTsKICAgICAgICAgICAgICAgIGlmIChkID4gMCkgbWFuYWdlci5pbnNlcnQoZCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBiYXNlIC09IGJbaWRdOwogICAgICAgICAgICAgICAgaWYgKGQgPiAwKSBtYW5hZ2VyLmVyYXNlKGQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgbGFzdCA9IGN1cjsKICAgIH0KICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7CgogICAgI2RlZmluZSBUQVNLICJPUkNPTkYiCiAgICBpZiAoZm9wZW4oVEFTSyIuSU5QIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4oVEFTSyIuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihUQVNLIi5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgaW50IHRlc3RzID0gMTsgLy8gY2luID4+IHRlc3RzOwogICAgd2hpbGUgKHRlc3RzLS0pIHNvbHZlKCk7CgogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGNlcnIgPDwgIlxuVGltZSBlbGFwc2VkOiAiIDw8IDEuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQyA8PCAiIHMuXG4iOwogICAgI2VuZGlmCgogICAgcmV0dXJuIDA7Cn0=