#include <bits/stdc++.h>
using namespace std;
const int N = 305;
int cost[N][N];
bool cov[N];
int n, m, k;
long long dp[N][N], oo = 1e18;
long long calc(int in, int c) {
  if (c < 0) return oo;
  if (in == n) {
    return !c ? 0 : oo;
  }
  long long &ret = dp[in][c];
  if (ret != -1) return ret;
  ret = oo;
  ret = calc(in + 1, c);
  for (int i = in; i < n; i++) {
    if (cost[in][i] != -1)
      ret = min(ret, calc(i + 1, c - (i - in + 1)) + cost[in][i]);
  }
  return ret;
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  memset(cost, -1, sizeof cost);
  memset(dp, -1, sizeof dp);
  for (int i = 0, a, b, c; i < m; i++) {
    scanf("%d%d%d", &a, &b, &c);
    a--, b--;
    for (int l = a; l <= b; l++) {
      cov[l] = true;
      if (cost[l][b] == -1)
        cost[l][b] = c;
      else
        cost[l][b] = min(cost[l][b], c);
    }
  }
  long long ans = calc(0, k);
  if (ans != oo)
    cout << calc(0, k) << endl;
  else
    puts("-1");
  return 0;
}
