#include <bits/stdc++.h>
inline long long int min(long long int a, long long int b) {
  return (a < b) ? a : b;
}
long long int dp[303][303], cost[303][303];
int main() {
  int n, m, k, o, j, i;
  scanf("%d %d %d", &n, &m, &o);
  for (i = 0; i <= n; i++)
    for (j = 0; j <= n; j++) dp[i][j] = cost[i][j] = 10000000000000LL;
  for (i = 0; i < m; i++) {
    int l, r, c;
    scanf("%d %d %d", &l, &r, &c);
    cost[l][r] = min(cost[l][r], c);
  }
  for (i = 1; i <= n; i++)
    for (j = 1; j <= i; j++)
      for (k = i; k <= n; k++) {
        cost[j][i] = min(cost[j][i], cost[j][k]);
        cost[i][k] = min(cost[i][k], cost[j][k]);
      }
  for (i = 0; i <= n; i++) {
    dp[i][0] = 0;
    for (j = 1; j <= i; j++) {
      dp[i][j] = min(cost[i - j + 1][i], dp[i - 1][j]);
      for (k = 1; k < j; k++)
        dp[i][j] = min(dp[i][j], cost[i - k + 1][i] + dp[i - k][j - k]);
    }
  }
  if (dp[n][o] != 10000000000000LL)
    printf("%I64d\n", dp[n][o]);
  else
    printf("-1\n");
  return 0;
}
