#include <bits/stdc++.h>
using namespace std;
const int maxn = 300 + 10;
const long long inf = 0x3f3f3f3f3f3f3f3f;
long long dp[maxn][maxn];
int n, m, k;
long long c[maxn][maxn];
void prework() {
  memset(c, 0x3f, sizeof(c));
  memset(dp, 0x3f, sizeof(dp));
  scanf("%d %d %d", &n, &m, &k);
  for (int i = 0; i < m; ++i) {
    int l, r, cost;
    scanf("%d %d %d", &l, &r, &cost);
    for (int j = l; j <= r; ++j) c[l][j] = min(c[l][j], (long long)cost);
  }
}
void solve() {
  dp[0][0] = 0;
  for (int i = 1; i <= n; ++i) {
    dp[i][0] = 0;
    for (int j = 1; j <= k && j <= i; ++j) {
      dp[i][j] = dp[i - 1][j];
      for (int q = 1; q <= i && q <= j; ++q)
        dp[i][j] = min(dp[i][j], dp[i - q][j - q] + c[i - q + 1][i]);
    }
  }
  long long ans = dp[1][k];
  for (int i = 2; i <= n; ++i) ans = min(ans, dp[i][k]);
  if (ans < inf)
    cout << ans << "\n";
  else
    cout << -1 << "\n";
}
int main() {
  prework();
  solve();
  return 0;
}
