#include <bits/stdc++.h>
using namespace std;
const long long INF = 1000000LL * 1000000LL * 100;
const int MAX_N = 300 + 20;
long long dp[MAX_N][MAX_N], cost[MAX_N][MAX_N];
int n, m, k;
int main() {
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; ++j) dp[i][j] = cost[i][j] = INF;
  for (int i = 1; i <= m; ++i) {
    int l, r, c;
    cin >> l >> r >> c;
    for (int j = l; j <= r; j++) cost[l][j] = min(cost[l][j], (long long)c);
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= min(k, i); j++) {
      if (i - 1 >= j) dp[i][j] = dp[i - 1][j];
      for (int l = 1; l <= j; ++l) {
        int last = i, first = i - l + 1;
        dp[i][j] = min(dp[i][j], dp[first - 1][j - l] + cost[first][last]);
      }
    }
  long long ans = INF;
  for (int i = k; i <= n; i++) ans = min(ans, dp[n][i]);
  cout << (ans == INF ? -1 : ans) << endl;
  return 0;
}
