#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 160;
int n, k, s;
int number[MAX_N];
int dp[2][MAX_N][MAX_N * MAX_N];
int main() {
  cin >> n >> k >> s;
  s = min(n * (n - 1) / 2, s);
  for (int i = 1; i <= n; ++i) cin >> number[i];
  memset(dp, -1, sizeof(dp));
  for (int i = 0; i <= s; ++i) {
    dp[0][0][i] = 0;
  }
  for (int i = 1; i <= n; ++i) {
    for (int j = 0; j <= i; ++j) {
      for (int p = 0; p <= s; ++p) {
        if (p >= i - j && j >= 1) {
          dp[i % 2][j][p] = dp[(i - 1) % 2][j - 1][p - i + j] + number[i];
        }
        if (i > j && dp[(i - 1) % 2][j][p] >= 0) {
          dp[i % 2][j][p] = min(dp[(i - 1) % 2][j][p], dp[i % 2][j][p]);
        }
        if (dp[i % 2][j][p] < 0) {
          dp[i % 2][j][p] = dp[(i - 1) % 2][j][p];
        }
        if (j == 0) {
          dp[i % 2][j][p] = 0;
        }
      }
    }
  }
  cout << dp[n % 2][k][s] << endl;
}
