#include <bits/stdc++.h>
using namespace std;
const long long int oo = 1e18;
const int N = 302;
long long int dp[N][N], best[N][N];
int n, k, m;
int main() {
  cin.sync_with_stdio(false);
  cin >> n >> m >> k;
  fill(best[0], best[N], oo);
  for (int i = 0; i < m; i++) {
    int l, r;
    long long int c;
    cin >> l >> r >> c;
    best[r][l] = min(best[r][l], c);
  }
  for (int i = n - 1; i; i--)
    for (int j = 1; j <= i; j++) best[i][j] = min(best[i][j], best[i + 1][j]);
  fill(dp[0], dp[N], oo);
  dp[0][0] = 0;
  for (int i = 1; i <= n; i++)
    for (int j = 0; j <= i; j++) {
      dp[i][j] = dp[i - 1][j];
      for (int c = 1; c <= i; c++)
        dp[i][j] =
            min(dp[i][j], best[i][c] + dp[c - 1][max(0, j - (i - (c - 1)))]);
    }
  cout << (dp[n][k] == oo ? -1 : dp[n][k]) << '\n';
  return 0;
}
