#include <bits/stdc++.h>
using namespace std;
#define ar array
#define ll long long
const int inf = 2e9;
const ll linf = 1e18;
void solve() {
int m, n;
cin >> m >> n;
vector<ar<int, 4>> a(m);
for (int i = 0; i < m;i++)
for (int j = 0; j < 4;j++)
cin >> a[i][j];
ll ans = linf;
for (int mask = 0; mask < (1 << m); mask++) {
ll cur = 0;
vector<int> v;
for (int i = 0; i < m;i++)
if (mask >> i & 1)
v.push_back(i), cur += a[i][3];
int ok = 1, f = 1;
vector<int> vis(n + 1, 0);
reverse(v.begin(), v.end());
for (int id : v) {
auto [l, r, c, _] = a[id];
if (!f) {
if (!vis[c]) {
ok = 0;
break;
}
}
f = 0;
for (int i = l; i <= r;i++)
vis[i] = 1;
}
for (int i = 1; i <= n;i++)
ok &= vis[i];
if (ok)
ans = min(ans, cur);
}
cout << (ans == linf ? -1 : ans) << "\n";
}
int32_t main() {
#ifdef Behruz
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
ios :: sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
solve();
return 0;
}