#include <bits/stdc++.h>
using namespace std;
long long int k, n;
bool o;
long long int min(long long int a, long long int b) {
  if (a < b)
    return a;
  else
    return b;
}
long long F[310][310];
long long d[310][310];
long long f(long long int i, long long int j) {
  if (F[i][j] != 0) return F[i][j];
  long long int r, l;
  if (i == n + 1 and j < k) return ((long long)(1) << 60);
  if (j >= k) return 0;
  r = f(i + 1, j);
  for (l = i; l <= n; l++) r = min(r, f(l + 1, j + l - i + 1) + d[i][l]);
  return F[i][j] = r;
}
int main() {
  long long int m, i, j, a, b, c;
  scanf("%I64d%I64d%I64d", &n, &m, &k);
  for (i = 0; i <= n + 1; i++)
    for (j = 0; j <= n + 1; j++) d[i][j] = ((long long)(1) << 60);
  o = false;
  for (i = 1; i <= m; i++) {
    scanf("%I64d%I64d%I64d", &a, &b, &c);
    d[a][b] = min(d[a][b], c);
  }
  for (i = 1; i <= n; i++)
    for (j = n; j >= i; j--) {
      d[i][j] = min(d[i][j], d[i - 1][j]);
      d[i][j] = min(d[i][j], d[i][j + 1]);
    }
  if (f(1, 0) < ((long long)(1) << 59) - 2)
    printf("%I64d", f(1, 0));
  else
    printf("-1");
  return 0;
}
