#include <bits/stdc++.h>
using namespace std;
int n, m, k;
long long cost[305][305];
long long dp[305][305];
int main() {
  cin >> n >> m >> k;
  memset(cost, 0x11, sizeof(cost));
  for (int i = 0; i < m; i++) {
    int l, r, w;
    cin >> l >> r >> w;
    for (int a = l; a <= r; a++)
      for (int b = a; b <= r; b++) cost[a][b] = min(cost[a][b], (long long)w);
  }
  memset(dp, 0x11, sizeof(dp));
  dp[0][0] = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= k && j <= i; j++) {
      if (dp[i][j] == 0x1111111111111111) continue;
      dp[i + 1][j] = min(dp[i][j], dp[i + 1][j]);
      for (int r = i + 1; r <= n && (r - i + j) <= k; r++)
        dp[r][j + r - i] = min(dp[r][j + r - i], dp[i][j] + cost[i + 1][r]);
    }
  }
  printf("%I64d\n", dp[n][k] == 0x1111111111111111 ? -1 : dp[n][k]);
  return 0;
}
