#pragma GCC optimize("O3,inline")
#include <bits/stdc++.h>
using namespace std;
#define int long long
vector<pair<pair<int, int>, int>> vals;
vector<vector<int>> mem;
signed main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int N, M, K, a, b, c; cin >> N >> M >> K;
for (int i = 0; i < M; i++) {
cin >> a >> b >> c; a--, b--;
vals.push_back({ {b, a}, c });
}
vals.push_back({ { -1, -1}, 0 });
sort(vals.begin(), vals.end());
vals.push_back({ { N, N}, 0 });
mem.resize(M + 1, vector<int>(K + 2, -1));
for (int i = M; i >= 0; i--) {
for (int j = 0; j < K + 2; j++) {
int crnt = 1e15, crntv = 0;
for (int k = i + 1; k <= M; k++) {
if (vals[k].first.second < vals[i].first.first) continue;
crnt = min(crnt, (j ? mem[k][j - 1] : (int)(1e15)) + crntv);
crntv += vals[k].second;
}
crnt = min(crnt, (j ? 0 : (int)(1e15)) + crntv);
mem[i][j] = crnt;
}
}
cout << mem[0][K + 1] << '\n';
}